• <nav id="dstbx"></nav>

    <nav id="dstbx"></nav>
    1. <form id="dstbx"></form>
    2. <small id="dstbx"></small>

      教育行業A股IPO第一股(股票代碼 003032)

      全國咨詢/投訴熱線:400-618-4000

      Swing事件處理的過程是怎樣的?

      更新時間:2021年06月22日16時26分 來源:傳智教育 瀏覽次數:

      傳智教育-一樣的教育,不一樣的品質

      Swing組件中的事件處理專門用于響應用戶的操作,例如,響應用戶的單擊鼠標、按下鍵盤等操作。在Swing事件處理的過程中,主要涉及到三類對象:

      ● 事件源(Event Source):事件發生的場所,通常就是產生事件的組件,例如窗口、按鈕、菜單等。

      ● 事件對象(Event):封裝了GUI組件上發生的特定事件(通常就是用戶的一次操作)。

      ● 監聽器(Listener):負責監聽事件源上發生的事件,并對各種事件做出相應處理的對象(對象中包含事件處理器)。

      上面提到的事件源、事件對象、監聽器在整個事件處理過程中都起著非常重要的作用,它們彼此之間有著非常緊密的聯系。接下來用一個圖例來描述事件處理的工作流程,如圖1所示。

      事件處理機制

      圖1 事件處理流程圖

      在圖1中,事件源是一個組件,當用戶進行一些操作時,如按下鼠標或者釋放鍵盤等,都會觸發相應的事件,如果事件源注冊了監聽器,則觸發的相應事件將會被處理。

      接下來,通過一個案例來演示Swing中的事件處理,如文件1所示。

      文件1 Example06.java

           import java.awt.event.*;
           import javax.swing.*;
           // 自定義事件監聽器類
           class MyListener implements ActionListener{
               // 實現監聽器方法,對監聽事件進行處理
               public void actionPerformed(ActionEvent e) {
                   System.out.println("用戶點擊了JButton按鈕組件");
               }
           }
           public class Example06 {
               private static void createAndShowGUI() {
                   JFrame f = new JFrame("JFrame窗口");
                   f.setSize(200, 100); 
                   // 創建一個按鈕組件,作為事件源
                   JButton btn = new JButton("按鈕");  
                   // 為按鈕組件事件源添加自定義監聽器
                   btn.addActionListener(new MyListener());
                   f.add(btn);
                   f.setVisible(true);
                   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               }
               public static void main(String[] args) {
                   // 使用SwingUtilities工具類調用createAndShowGUI()方法并顯示GUI程序
                   SwingUtilities.invokeLater(Example06::createAndShowGUI);
               }
           }

      運行結果如圖2所示。

      事件處理機制

      圖2 運行結果

      單擊圖2中的按鈕組件,查看控制臺,顯示輸出結果如圖3所示。

      事件處理機制

      圖3 運行結果

      文件1中,在JFrame窗口中添加了一個JButton按鈕組件,同時通過addActionListener()方法為按鈕組件添加了一個自定義事件監聽器,當單擊按鈕組件時就會觸發事件監聽器,進行事件處理。

      從上面的程序可以看出,實現Swing事件處理的主要步驟如下:

      (1)創建事件源:除了一些常見的按鈕、鍵盤等組件可以作為事件源外,包括JFrame窗口在內的頂級容器也可以作為事件源;

      (2)自定義事件監聽器:根據要監聽的事件源創建指定類型的監聽器進行事件處理,該監聽器是一個特殊的Java類,必須實現XxxListener接口(根據組件觸發的動作進行區分,如WindowListener用于監聽窗口事件,ActionListener用于監聽動作事件);

      (3)為事件源注冊監聽器:使用addXxxListener()方法為指定事件源添加特定類型的監聽器。當事件源上發生監聽的事件后,就會觸發綁定的事件監聽器,然后由監聽器中的方法進行相應處理。







      猜你喜歡:

      Swing有幾種常用的事件處理方式?如何監聽事件?

      Swing JDialog容器和JFrame容器使用教程

      Java swing是做什么的?有什么作用?

      傳智教育Java高級軟件工程師培訓

      0 分享到:
      神马影院我不卡