يصف المثال الموجود في هذه المقالة رمز لعبة الكرة والدبابيس المطبق في Java استنادًا إلى التأرجح. شاركها مع الجميع لتكون مرجعا لك.
رموز الوظيفة الرئيسية هي كما يلي:
انسخ رمز الكود كما يلي:
لعبة الحزمة؛
استيراد java.awt.Graphics؛
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.ButtonGroup;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
/**
* فئة واجهة اللعبة
*
* @ المؤلف المسؤول
*
*/
لعبة الطبقة العامة تمتد javax.swing.JFrame {
serialVersionUID النهائي الطويل الخاص الثابت = 1L؛
واجهة مستخدم اللعبة الثابتة الخاصة؛
رسومات خاصة ز؛
مستمع خاص مل؛
javax.swing.JLabel text_field العام؛
javax.swing.JProgressBar العام pBar؛
أمر سلسلة خاصة؛
قائمة ArrayList<MyThread> العامة = new ArrayList<MyThread>();
زر javax.swing.JToggleButton الخاص؛
public static void main(String args[]) {
واجهة المستخدم = لعبة جديدة ()؛
UI.initUI();
}
/**
* طريقة تهيئة النموذج
*/
initUI الفراغ العام () {
//تعيين العنوان
this.setTitle("إذا كنت محترفًا، فالتزم به لمدة 10 ثوانٍ");
//تعيين الحجم
this.setSize(610, 635);
// اضبط إيقاف التشغيل للخروج من البرنامج
this.setDefaultCloseOperation(3);
// اضبط للعرض في منتصف الشاشة عند فتح النموذج
this.setLocationRelativeTo(null);
// قم بتعيين مدير تخطيط التدفق للنموذج
this.setLayout(new java.awt.FlowLayout());
// قم بتعيين لون خلفية النموذج
this.getContentPane().setBackground(java.awt.Color.black);
// إنشاء كائن تسمية نصية
text_field = new javax.swing.JLabel();
javax.swing.JLabel label = new javax.swing.JLabel("الوقت:");
// قم بتعيين اللون الأمامي لتسمية النص
lable.setForeground(java.awt.Color.red);
text_field.setForeground(java.awt.Color.red);
// إنشاء كائن شريط التقدم
pBar = new javax.swing.JProgressBar(0, 330);
// إنشاء كائن زر
Button = new javax.swing.JToggleButton();
Button.setMargin(new Insets(0, 0, 0, 0));
Button.setIcon(new javax.swing.ImageIcon("images/Pause.gif"));
Button.setActionCommand("إيقاف مؤقت");
// أنشئ مستمعين للعمل من خلال فئات داخلية مجهولة
java.awt.event.ActionListener Button_listener = new java.awt.event.ActionListener() {
إجراء باطل عام (ActionEvent e) {
String com = e.getActionCommand();
إذا (com.equals("وقفة")) {
Button.setMargin(new Insets(0, 0, 0, 0));
Button.setIcon(new javax.swing.ImageIcon("images/start.gif"));
Button.setActionCommand("متابعة");
لـ (int i = 0; i < list.size(); i++) {
list.get(i).PauseThread();
}
}
إذا (com.equals("متابعة")) {
Button.setMargin(new Insets(0, 0, 0, 0));
Button.setIcon(new javax.swing.ImageIcon("images/Pause.gif"));
Button.setActionCommand("إيقاف مؤقت");
لـ (int i = 0; i < list.size(); i++) {
list.get(i).ContinueThread();
}
}
}
};
Button.addActionListener(button_listener);
this.add(button);
this.add(lable);
this.add(pBar);
this.add(text_field);
// انتقل إلى شريط القائمة
JMenuBar bar = creatMenuBar();
// قم بتعيين شريط القائمة للنموذج
this.setJMenuBar(bar);
// قم بتعيين رؤية النموذج
this.setVisible(true);
}
/**
* كيفية إنشاء شريط القوائم
*
* @يعود
*/
JMenuBar العام يخلقMenuBar() {
// إنشاء كائن شريط القائمة
شريط JMenuBar = جديد JMenuBar();
// إنشاء كائن القائمة
JMenu Menu_menu = new JMenu("menu");
صعوبة JMenu = new JMenu("الصعوبة");
JMenu help_menu = new JMenu("مساعدة");
// إنشاء كائن خيار القائمة
JMenuItem star_item = new JMenuItem("Start");
JMenuItem Exit_item = new JMenuItem("خروج");
JMenuItem help_item = new JMenuItem("وصف اللعبة");
JMenuItem about_item = new JMenuItem("about");
// إنشاء خيارات الراديو
JRadioButtonMenuItem easy_item = جديد JRadioButtonMenuItem(
"بسيط")؛
JRadioButtonMenuItem middle_item = جديد JRadioButtonMenuItem(
"واسطة")؛
JRadioButtonMenuItem hard_item = جديد JRadioButtonMenuItem(
"صعوبة")؛
// إنشاء مجموعة أزرار
مجموعة ButtonGroup = new ButtonGroup();
// أضف زر الاختيار إلى مجموعة الأزرار
group.add(easy_item);
group.add(middle_item);
group.add(hard_item);
// أضف أزرار الاختيار إلى القائمة
صعوبة_القائمة.add(easy_item);
صعوبة_menu.add(middle_item);
صعوبة_القائمة.add(hard_item);
// أنشئ مستمعين للعمل من خلال فئات داخلية مجهولة
مستمع ActionListener = جديد ActionListener() {
إجراء باطل عام (ActionEvent e) {
الأمر = e.getActionCommand();
// إذا تم تحديد البداية، فقم بإنشاء كائن مؤشر الترابط
إذا (command.equals("start") && list.size() == 0) {
creatBall(20, 1);
}
// إذا تم تحديد زر الخروج، فاخرج من البرنامج
إذا (command.equals("خروج")) {
System.exit(0);
}
// إذا تم تحديد زر بسيط
إذا (command.equals("simple") && list.size() == 0) {
creatBall(20, 1);
}
// إذا تم تحديد الزر المتوسط
إذا (command.equals("medium") && list.size() == 0) {
creatBall(50, 2);
}
إذا (command.equals("الصعوبة") && list.size() == 0) {
creatBall(40, 2);
}
إذا (command.equals("وصف اللعبة")) {
JOptionPane.showMessageDialog(خالية،
"حرك الماوس واستخدم الحاجز للإمساك بالكرة. إذا لم تتمكن من الإمساك بها، فستخسر.../n يمكن للعبة اختيار الصعوبة، بما في ذلك السهل والمتوسط والصعب")؛
}
إذا (command.equals("about")) {
JOptionPane
.showMessageDialog(فارغة،
"هذه لعبة صغيرة مكتوبة بلغة Java.../المنتج: Shen Guanjun/nTime: أغسطس 2010/حقوق الطبع والنشر، سيتم التحقيق في أي نسخ!");
}
}
};
// أضف مستمع الإجراء
star_item.addActionListener(listener);
Exit_item.addActionListener(listener);
easy_item.addActionListener(listener);
middle_item.addActionListener(listener);
hard_item.addActionListener(listener);
help_item.addActionListener(listener);
about_item.addActionListener(listener);
// أضف كائن خيار القائمة إلى كائن القائمة
Menu_menu.add(star_item);
Menu_menu.add(exit_item);
help_menu.add(help_item);
help_menu.add(about_item);
// أضف كائن القائمة إلى شريط القائمة
bar.add(menu_menu);
bar.add(difficulty_menu);
bar.add(help_menu);
// إرجاع كائن شريط القائمة
شريط العودة
}
/**
* طريقة إنشاء كائن مؤشر الترابط
*
* @param السرعة
* :سرعة
*
*/
إنشاء الفراغ العام (int speed، int num) {
ركض عشوائي = جديد عشوائي ()؛
إذا (مل == فارغة) {
g = UI.getGraphics();
ml = مستمع جديد(g);
UI.addMouseListener(ml);
UI.addMouseMotionListener(ml);
}
لـ (int i = 0; i < num; i++) {
int x = ran.nextInt(600) + 10;
int y = ran.nextInt(300) + 100;
MyThread th = new MyThread(g, ml, UI, x, y, speed);
list.add(th);
th.start();
}
}
/**
* كيفية الحصول على الأمر
*/
سلسلة عامة getCommand () {
أمر العودة؛
}
}
انسخ رمز الكود كما يلي:
لعبة الحزمة؛
import java.awt.Color;
استيراد java.awt.Graphics؛
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
/**
* فئة مستمع الفأرة
*
* @ المؤلف المسؤول
*
*/
مستمع الطبقة العامة يمتد MouseAdapter {
رسومات خاصة ز؛
الخاص int x = 5, y = 620;
عرض int الخاص = 100، الارتفاع = 10؛
المستمع العام(الرسومات ز) {
this.g = g;
}
public void mouseMoved(MouseEvent e) {
// قم بتعيين لون كائن اللوحة القماشية
متزامن (this.g) {
g.setColor(Color.black);
g.fillRect(x, y, width, height);
x = e.getX();
g.setColor(java.awt.Color.green);
g.fillRect(x, y, width, height);
}
}
/**
* طريقة الحصول على x
*
* @العودة: س
*/
كثافة العمليات العامة getX () {
العودة س؛
}
}
يظهر تأثير التشغيل في الشكل أدناه:
آمل أن تكون هذه المقالة مفيدة لبرمجة جافا للجميع.