-
كود المصدر:
عرض نسخة عادية إلى الحافظة؟
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
استيراد java.awt.Graphics؛
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
//###########################################################################################
// ربما في بعض الأحيان لا يوجد شيء بعد تشغيل البرنامج، تحتاج إلى تحريك الماوس على الشاشة حتى يظهر الزر.
// أما السبب فلا أفهم ~~ فهو يحتاج إلى دراسة في المستقبل
//################################################################################
public class testEventMouse Extends JFrame{ // الفئة الرئيسية، ترث فئة JFrame، لأنه يتم استخدام طريقة الطلاء () ، لذلك
// يجب أن ترث فئة الإطار، وإلا فأنا، كمبتدئ، لم أتعلم طرقًا أخرى يمكنها استدعاء الطلاء ()
حاوية contentPanel؛ // مرجع شبكة المحتوى
JButton b1,b2,b3,b4,b5;// هذه خمسة أزرار
JRadioButton backGroundRadio,foreGroundRadio; // تحديد مربعي زر الاختيار
ButtonGroup radioGroup؛ // مجموعة أزرار الراديو
int xValue,yValue; // احتفظ بوضع الماوس (x,y)
JFrame jf=this;// قم بتعيين الكائن الحالي إلى jf، لأنه عندما قمت بتعديل الكود لاحقًا، وجدت أن لون الخلفية هو شبكة المحتوى أو المكونات الأخرى
// للإدارة، لا تدير فئة إطار الإطار لون الخلفية، ولكن السبب وراء رغبتي في الحصول على كائن JFrame هو أن اللون الأمامي هو فئة الإطار فقط
// يمكن إدارتها، والمكونات الأخرى غير مؤهلة للإدارة؛ إذا قمت بمعالجة الأحداث لاحقًا، فستجدها
public testEventMouse(){ //Constructor
super("08 Jiben Cao Feng--لوحة كتابة مقلدة");
b1=new JButton("Black");// تنفيذ خمسة أزرار
b2=new JButton("Blue");
b3=new JButton("أحمر");
b4=new JButton("أبيض");
b5=new JButton("Yellow");
contentPanel=this.getContentPane();// احصل على جزء المحتوى
contentPanel.setLayout(new FlowLayout());// قم بتعيين مدير التخطيط لشبكة المحتوى
backGroundRadio=new JRadioButton("backGround"); // إنشاء مربع الاختيار
foreGroundRadio=new JRadioButton("foreGround");
contentPanel.add(backGroundRadio);// أضف إلى شبكة المحتوى
contentPanel.add(foreGroundRadio);
contentPanel.add(b1);//زر الإضافة
contentPanel.add(b2);
contentPanel.add(b3);
contentPanel.add(b4);
contentPanel.add(b5);
MouseListenerHandler mou=new MouseListenerHandler(); // تنفيذ فئة الاستماع للحدث
b1.addMouseListener(mou); // سجل كمستمع لخمسة أزرار
b2.addMouseListener(mou);
b3.addMouseListener(mou);
b4.addMouseListener(mou);
b5.addMouseListener(mou);
radioGroup=new ButtonGroup(); // مجموعة أزرار الاختيار المثيلة
radioGroup.add(backGroundRadio);// ادمج زري اختيار في مجموعة
radioGroup.add(foreGroundRadio);
addMouseMotionListener( // فئة مجهولة
new MouseMotionAdapter(){ // نظرًا لأنه يتم استدعاؤه بواسطة الكائن الحالي، فقد قمت بإنشاء محول للعب به.
الماوس العام الفارغ (MouseEvent e) {
xValue=e.getX();
yValue=e.getY();
إعادة رسم ()؛ // استدعاء طريقة الطلاء ().
}
}
);
setSize(1000,500); // إذا كنت تريد القيام بذلك، فاجعله كبيرًا
setVisible(true); //تعيين مرئي
}
public class MouseListenerHandler Implements MouseListener{ // فئة الاستماع لحدث الماوس
public void mousePressed(MouseEvent e){ // في الواقع، هناك شيء واحد مفيد فقط، وهو حدث النقر بالماوس
// نظرًا لوجود العديد من الكائنات التي يجب مراقبتها، فليس من الجيد استخدام المحول.
if(e.getSource()==b1){ // استخدم getSouce() للحصول على الكائن
إذا (backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLACK);// هنا تأتي النقطة، استخدم شبكة المحتوى لتعيين لون الخلفية
آخر //#####################
jf.setForeground(Color.BLACK); // استخدم الإطار لتعيين لون المقدمة
}
إذا(e.getSource()==b2){
إذا (backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLUE);
آخر
jf.setForeground(Color.BLUE);
}
إذا(e.getSource()==b3){
إذا (backGroundRadio.isSelected())
contentPanel.setBackground(Color.RED);
آخر
jf.setForeground(Color.RED);
}
إذا(e.getSource()==b4){
إذا (backGroundRadio.isSelected())
contentPanel.setBackground(Color.WHITE);
آخر
jf.setForeground(Color.WHITE);
}
إذا(e.getSource()==b5){
إذا (backGroundRadio.isSelected())
contentPanel.setBackground(Color.YELLOW);
آخر
jf.setForeground(Color.YELLOW);
}
}
public void mouseClicked(MouseEvent e) { // الأشياء التالية عديمة الفائدة، ولكن كطرق واجهة، تنفيذ فارغ
}
تم إدخال الماوس الفراغي العام (MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
الماوس العام الفارغ (MouseEvent e) {
}
}
طلاء الفراغ العام (الرسومات ز) {// ارسم بعض الدوائر الصغيرة لإرباك العين البشرية، هاها
g.fillOval(xValue, yValue, 4, 4); //ارسم دائرة
}
الفراغ الثابت العام الرئيسي(String args[]){
new testEventMouse(); // فئة مجهولة
}