Java事件處理機制


Java事件處理機制涉及三個成員:事件源事件事件監聽器
事件源:Java的AWT或Swing組件,該組件就是事件源,通過new關鍵字即可創建
事件:由系統自動產生
事件監聽器:整個事件處理的核心。

事件監聽器必須實現事件監聽器接口,以鼠標事件為例

 1 class btnMouseListener(事件監聽器的名字) implements MouseListener(鼠標事件監聽器接口) {
 2     // 事件處理器(發生不同的事件進行的操作)
 3     // 1. 鼠標進入組件事件
 4     public void mouseEntered(處理器,即事件發生的動作) (MouseEvent(事件名) e) {
 5         System.out.println("鼠標進入按鈕");
 6     }
 7     // 2. 鼠標離開組件事件
 8     public void mouseExited (MouseEvent e) {
 9         System.out.println("鼠標離開按鈕");
10     }
11 }

 

完整的事件處理程序

1. 定義事件監聽器類,必須實現XxxListener接口

2. 完成事件處理器中方法的填寫,規定特定的事件發生時執行的動作

3. 創建事件監聽器類的實例並添加進組件

 

鼠標進入和離開按鈕的事件

 1 package p1;
 2 
 3 import java.awt.event.MouseEvent;
 4 import java.awt.event.MouseListener;
 5 
 6 import javax.swing.JButton;
 7 import javax.swing.JFrame;
 8 
 9 public class MouseEventDemo {
10     public static void main(String[] args) {
11         JButton jbtn = new JButton("btn");
12         
13         // 3. 創建事件監聽器,並添加進組件(事件源)(注冊監聽器)
14         BtnMouseListener btnML = new BtnMouseListener();
15         jbtn.addMouseListener(btnML);
16         
17         JFrame jf = new JFrame("事件處理");
18         jf.add(jbtn);
19         
20         jf.setSize(800, 600);
21         jf.setLocationRelativeTo(null);
22         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
23         jf.setVisible(true);
24     }
25 }
26 
27 // 1. 定義事件監聽器類,必須實現MouseListener接口
28 class BtnMouseListener implements MouseListener {
29     
30     // 2. 事件處理器,用於響應特定的事件
31     @Override
32     public void mouseEntered(MouseEvent e) {
33         System.out.println("鼠標進入按鈕");
34     }
35     
36     @Override
37     public void mouseExited (MouseEvent e) {
38         System.out.println("鼠標離開按鈕");
39     }
40 
41     @Override
42     public void mouseClicked(MouseEvent e) {
43         // TODO Auto-generated method stub
44         
45     }
46 
47     @Override
48     public void mousePressed(MouseEvent e) {
49         // TODO Auto-generated method stub
50         
51     }
52 
53     @Override
54     public void mouseReleased(MouseEvent e) {
55         // TODO Auto-generated method stub
56         
57     }
58 
59 }

程序效果:

 

 

 

 

事件、監聽器和處理器之間的關系

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM