-
รหัสที่มา:
ดู plaincopy ไปที่ clipboardprint หรือไม่
นำเข้า java.awt.Color;
นำเข้า java.awt.Container;
นำเข้า java.awt.FlowLayout;
นำเข้า java.awt.Graphics;
นำเข้า java.awt.event.MouseEvent;
นำเข้า java.awt.event.MouseListener;
นำเข้า java.awt.event.MouseMotionAdapter;
นำเข้า javax.swing.ButtonGroup;
นำเข้า javax.swing.JButton;
นำเข้า javax.swing.JFrame;
นำเข้า javax.swing.JRadioButton;
-
//บางทีอาจจะไม่มีอะไรเลยหลังจากรันโปรแกรมแล้ว คุณต้องเลื่อนเมาส์บนหน้าจอเพื่อให้ปุ่มปรากฏขึ้น
//ทำไมผมไม่เข้าใจ~~มันต้องมีการศึกษาในอนาคต
-
คลาสสาธารณะ testEventMouse ขยาย JFrame{ //คลาสหลัก สืบทอดคลาส JFrame เนื่องจากมีการใช้เมธอด paint() ดังนั้น
//จะต้องสืบทอดคลาส Frame ไม่เช่นนั้นฉันซึ่งเป็นมือใหม่ยังไม่ได้เรียนรู้วิธีอื่นที่สามารถเรียก paint()
คอนเทนเนอร์ contentPanel; // การอ้างอิงตารางเนื้อหา
JButton b1,b2,b3,b4,b5;//นี่คือห้าปุ่ม
JRadioButton backGroundRadio, foreGroundRadio; // กำหนดกล่องปุ่มตัวเลือกสองกล่อง
ButtonGroup radioGroup; // กลุ่มปุ่มวิทยุ
int xValue, yValue; // รักษาตำแหน่งเมาส์ (x, y)
JFrame jf=this;//กำหนด object ปัจจุบันให้กับ jf เพราะพอผมปรับโค้ดทีหลังก็พบว่าสีพื้นหลังเป็นตารางเนื้อหาหรือส่วนประกอบอื่นๆ
//ในการจัดการ คลาสเฟรมเฟรมไม่ได้จัดการสีพื้นหลัง แต่เหตุผลที่ฉันต้องการรับออบเจ็กต์ JFrame ก็เพราะว่าสีพื้นหน้าเป็นเพียงคลาสเฟรมเท่านั้น
//สามารถจัดการได้ ส่วนประกอบอื่นๆ ไม่มีคุณสมบัติในการจัดการ หากคุณดำเนินการประมวลผลในภายหลัง คุณจะพบว่า
testEventMouse สาธารณะ () {// Constructor
super("08 Jiben Cao Feng--แผ่นเขียนจำลอง");
b1=new JButton("Black");//ใช้ห้าปุ่ม
b2=ใหม่ JButton("สีน้ำเงิน");
b3=ใหม่ JButton("สีแดง");
b4=ใหม่ JButton("สีขาว");
b5=ใหม่ JButton("สีเหลือง");
contentPanel=this.getContentPane();//รับบานหน้าต่างเนื้อหา
contentPanel.setLayout(new FlowLayout());//ตั้งค่าตัวจัดการโครงร่างของตารางเนื้อหา
backGroundRadio=new JRadioButton("backGround"); // สร้างตัวอย่างกล่องกาเครื่องหมาย
foreGroundRadio=JRadioButton ใหม่ ("foreGround");
contentPanel.add(backGroundRadio);//เพิ่มลงในตารางเนื้อหา
contentPanel.add (foreGroundRadio);
contentPanel.add(b1);//ปุ่มเพิ่ม
contentPanel.เพิ่ม(b2);
contentPanel.เพิ่ม(b3);
contentPanel.เพิ่ม(b4);
contentPanel.เพิ่ม(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(){/ //เนื่องจากวัตถุปัจจุบันถูกเรียก ฉันจึงสร้างอะแดปเตอร์ขึ้นมาเพื่อเล่น
โมฆะสาธารณะ mouseDragged (MouseEvent e) {
xValue=e.getX();
yValue=e.getY();
ทาสีใหม่(); //เรียกเมธอด paint()
-
-
-
setSize(1,000,500); //ถ้าอยากทำก็ทำให้มันใหญ่
setVisible(true); //ตั้งค่าให้มองเห็นได้
-
MouseListenerHandler คลาสสาธารณะใช้ MouseListener // คลาสการฟังเหตุการณ์ของเมาส์
public void mousePressed(MouseEvent e){/ //อันที่จริงมีเพียงสิ่งที่มีประโยชน์เพียงอย่างเดียวเท่านั้น ซึ่งก็คือเหตุการณ์การคลิกเมาส์
//เนื่องจากมีวัตถุจำนวนมากที่ต้องตรวจสอบ การใช้อะแดปเตอร์จึงไม่ดี
if(e.getSource()==b1){/ //ใช้ getSouce() เพื่อรับอ็อบเจ็กต์
ถ้า (backGroundRadio.isSelected())
contentPanel.setBackground(Color.BLACK);//มาถึงจุดนี้ ให้ใช้ตารางเนื้อหาเพื่อกำหนดสีพื้นหลัง
อื่น //#####################
jf.setForeground(Color.BLACK); //ใช้ Frame เพื่อกำหนดสีพื้นหน้า
-
ถ้า(e.getSource()==b2){
ถ้า (backGroundRadio.isSelected())
contentPanel.setBackground(สี.BLUE);
อื่น
jf.setForeground(สี.BLUE);
-
ถ้า(e.getSource()==b3){
ถ้า (backGroundRadio.isSelected())
contentPanel.setBackground(สี.RED);
อื่น
jf.setForeground(สี.RED);
-
ถ้า(e.getSource()==b4){
ถ้า (backGroundRadio.isSelected())
contentPanel.setBackground(สี ขาว);
อื่น
jf.setForeground(สี.WHITE);
-
ถ้า(e.getSource()==b5){
ถ้า (backGroundRadio.isSelected())
contentPanel.setBackground (สี YELLOW);
อื่น
jf.setForeground(สีเหลือง);
-
-
public void mouseClicked(MouseEvent e) { //สิ่งต่อไปนี้ไร้ประโยชน์ แต่เป็นวิธีการอินเทอร์เฟซ การใช้งานที่ว่างเปล่า
-
โมฆะสาธารณะ mouseEntered (MouseEvent e) {
-
โมฆะสาธารณะ mouseExited (MouseEvent e) {
-
โมฆะสาธารณะ mouseReleased (MouseEvent e) {
-
-
public void paint(Graphics g){/ //วาดวงกลมเล็กๆ ให้ตาคนสับสน 555
g.fillOval(xValue, yValue, 4, 4); //วาดวงกลม
-
โมฆะคงที่สาธารณะ main (String args []) {
ใหม่ testEventMouse(); //คลาสที่ไม่ระบุชื่อ
-