Java 事件監聽器

來源:互聯網
上載者:User

標籤:java   事件   

事件
      事件是使用者在介面上的一個操作(通常使用各種輸入裝置,如:滑鼠、鍵盤等來完成)。

      當一個事件發生時,該事件用一個事件對象來表示。事件對象有對應的事件類別。不同的事件類別描述不同類型的使用者動作。事件類別包含在java.awt.event和javax.swing.event包中。


事件來源

      產生事件的組件叫事件來源。在一個按鈕上單擊滑鼠時,該按鈕就是事件來源,會產生一個ActionEvent類型的事件。


事件處理器(事件處理方法)

      事件處理器是一個接收事件對象並進行相應處理的方法。事件處理器包含在一個類中,這個類的對象負責檢查事件是否發生,若發生就啟用事件處理器進行處理。


事件監聽器類
      包含事件處理器,並負責檢查事件是否發生,若發生就啟用事件處理器進行處理的類叫做事件監聽器類。其執行個體就是事件監聽器對象。事件監聽器類必須實現事件監聽器介面或繼承事件監聽器適配器類。
      事件監聽器介面定義了處理事件必須實現的方法。事件監聽器適配器類是對事件監聽器介面的簡單實現。目的是為了減少編程的工作量。

      事件監聽器介面和事件監聽器適配器類也都包含在java.awt.event和javax.swing.event包中。


註冊事件監聽器
      為了能夠讓事件監聽器檢查某個組件(事件來源)是否發生了某些事件,並且在發生時啟用事件處理器進行相應的處理,必須在事件來源上註冊事件監聽器。這是通過使用事件來源組件的以下方法來完成的:

      addXxxListener(事件監聽器對象)Xxx對應相應的事件類別。




樣本:

package test1;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.EmptyBorder;public class SimpleActionEvent extends JFrame {private JPanel  _contentPane;private JButton _jb; // 動作事件private JTextField _jt;// 焦時間點事件/** * Launch the application. */public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {SimpleActionEvent frame = new SimpleActionEvent();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/** * Create the frame. */public SimpleActionEvent() {setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);_contentPane = new JPanel();_jb = new JButton("我是按鈕,單擊我");_jt = new JTextField("請單擊其他地方", 10); _contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));_contentPane.setLayout(new FlowLayout());// 動作事件_jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自動產生的方法存根_jb.setText("我被單擊了");}});// 焦時間點事件_jt.addFocusListener(new FocusListener() {@Overridepublic void focusLost(FocusEvent e) {// TODO 自動產生的方法存根JOptionPane.showMessageDialog(null, "失去焦點");}@Overridepublic void focusGained(FocusEvent e) {// TODO 自動產生的方法存根}});_contentPane.add(_jb);_contentPane.add(_jt);setContentPane(_contentPane);}}


Java 事件監聽器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.