JAVA中事件處理的總結 – JAVA編程語言程序開發技術文章

1. 事件在JAVA SE的桌面開發是經常用到的,沒有事件的組件就像人沒有生命一樣。有事件必有事件源,要想完成某一功能必須有事件的處理方法,組件和事件相互配合、相互協調才能完成我們想要的結果。事件是一個對象,是對一個事件類型的描述;產生事件的組件我們通常叫做事件源;要想完成某一功能還需有事件處理的方法。
2. 事件處理的主要步驟:
 
1. 首先產生監聽器,監聽是否有事件源的產生。
2.  在要實現具有事件處理功能的組件上註冊監聽器。
3.  註冊監聽器的組件產生事件源,並將事件對象返回給監聽器。
4.  有監聽器調用相應的方法處理事件。
 
3.註冊事件監聽器的三種方法:
 
1.通過接口實現
 
package com.neusoft; 
 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class EventThrouthInterface extends JFrame implements ActionListener { 
    private JButton jb; 
 
    public EventThrouthInterface() { 
        jb = new JButton("確定"); 
        jb.addActionListener(this); 
        this.add(jb); 
        this.setSize(300, 200); 
        this.setDefaultCloseOperation(3); 
        this.setVisible(true); 
 
    } 
 
    public void actionPerformed(ActionEvent e) { 
        this.jb.setText("事件響應瞭"); 
    } 
 
    public static void main(String[] args) { 
        new EventThrouthInterface(); 
    } 

2.事件適配器。事件適配器和匿名內部類的方式基本相同,隻不過適配器是JAVA中為瞭簡化編程而提供的類,該類默認的實現瞭相應事件接口中的方法。比如WindowListener接口對應的事件適配器是WindowAdapter,而KeyListener對應的適配器接口是KeyAdapter,這樣通過適配器我們就省去瞭通過接口實現必須實現所有抽象方法的煩惱,應為適配器中已經實現瞭所有的抽象方法,我們隻需重寫我們想要實現的方法就可以瞭。
package com.neusoft; 
 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class EventThrouthAdapter extends JFrame { 
    private JButton jb; 
 
    public EventThrouthAdapter() { 
        jb = new JButton("確定"); 
        jb.addMouseListener(new MouseAdapter() { 
            public void mouseClicked(MouseEvent e) { 
                jb.setText("事件響應瞭"); 
            } 
        }); 
        this.add(jb); 
        this.setSize(300, 200); 
        this.setDefaultCloseOperation(3); 
        this.setVisible(true); 
 
    } 
 
    public static void main(String[] args) { 
        new EventThrouthAdapter(); 
    } 

3.匿名內部類。
package com.neusoft; 
 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 
 
import javax.swing.JButton; 
import javax.swing.JFrame; 
 
public class EventThrouthAdapter extends JFrame { 
    private JButton jb; 
 
    public EventThrouthAdapter() { 
        jb = new JButton("確定"); 
        jb.addMouseListener(new MouseListener() { 
            public void mouseClicked(MouseEvent e) { 
                jb.setText("事件響應瞭"); 
            } 
 
            public void mouseEntered(MouseEvent e) { 
            } 
 
            public void mouseExited(MouseEvent e) { 
            } 
 
            public void mousePressed(MouseEvent e) { 
            } 
 
            public void mouseReleased(MouseEvent e) { 
            } 
        }); 
        this.add(jb); 
        this.setSize(300, 200); 
        this.setDefaultCloseOperation(3); 
        this.setVisible(true); 
 
    } 
 
    public static void main(String[] args) { 
        new EventThrouthAdapter(); 
    } 
}  
作者“極致書生”

發佈留言