java Swing


1、什麼是事件 java

事件是用戶與GUI(圖形界面)交互的時候所觸發的事情。 編程

監聽器是可以檢測事件而且可以響應事件的代碼。 框架


建立一個監聽器類,在GUI類內聲明這個類的實例,而且把監聽器對象和須要響應事件的GUI中的某個組件相關聯。這個過程稱之爲註冊(registering)監聽器。 函數

2、ActionListener

ActionListener 是一個接口(interface),每一個swing對象都支持這個監聽器接口,ActionListener中只定義了一個方法,actionPerformed(ActionEvent e).咱們須要在監聽器類中來具體實現這個方法。e.getActionCommand()方法返回出發這個事件的對象相關的文本。  工具

經過判斷e.getActionCommand()來判斷用戶和哪一個組件進行了交互,而且執行相應的動做。 ui

 在GUI類中,new一個監聽器類,而且經過調用組件的addActionListener方法,把這個監聽器類註冊到相應的組件紙上。 this

3、this 爲了在監聽器中實現對組件的一些改變和動做,在GUI類中實例化監聽器類的時候,傳遞給構造函數的變量是this,this表明一個對象對自身的引用,指的是一個對象的當前實例。而後監聽器類在構造函數中接受這個參數,以實現對GUI類中組件的一些改變。 spa

4、使用WindowAdapter類關閉框架 orm

關閉框架的時候能夠去實現WindowListener這個接口,不過這個接口中咱們不使用的方法也必須用空白的方法來代替,因此咱們能夠使用一種叫作適配器的類,這樣就能夠只定義windowClosing 方法。 對象

========================================================

  Swing 是目前Java中不可缺乏的窗口工具組,是用戶創建圖形化用戶界面(GUI)程序的強大工具。Java Swing組件自動產生各類事件來響應用戶行爲。

 

如當用戶點擊按鈕或選擇菜單項目時,Swing組件會產生一個ActionEvent。Swing組件會產生許多事件,如ActionEvents, ChangeEvents,ItemEvents等,來響應用戶的鼠標點擊行爲,列表框中值的改變,計時器的開始計時等行爲。在Java Swing編程中,經過註冊監聽器,咱們能夠監聽事件源產生的事件,從而在事件處理程序中處理咱們所須要處理的用戶行爲。

Java Swing中處理各組件事件的通常步驟是:

1.新建一個組件(如JButton)。

2.將該組件添加到相應的面板(如JPanel)。

3.註冊監聽器以監聽事件源產生的事件(如經過ActionListener來響應用戶點擊按鈕)。

4.定義處理事件的方法(如在ActionListener中的actionPerformed中定義相應方法)。

以上步驟咱們能夠用多種方法實現。

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; public class Simple3 {     private static JFrame frame;     // 定義爲靜態變量以便main使用     private static JPanel myPanel;     // 該面板用來放置按鈕組件     private JButton button1;     // 這裏定義按鈕組件     private JButton button2;     // 以便讓ActionListener使用     // 利用通常內部類來監聽每個事件源產生的事件如(button1, button2)     private class Button1Handler implements ActionListener {         public void actionPerformed(ActionEvent e) {             JOptionPane.showMessageDialog(frame, "按鈕1 被點擊");         }     }     private class Button2Handler implements ActionListener {         public void actionPerformed(ActionEvent e) {             JOptionPane.showMessageDialog(frame, "按鈕2 被點擊");         }     }     public Simple3()     // // 構造器, 創建圖形界面     {         // 新建面板         myPanel = new JPanel();         // 新建按鈕         button1 = new JButton("按鈕1");         // 新建按鈕1         button2 = new JButton("按鈕2");         // 對每個組件註冊監聽內部類         button1.addActionListener(new Button1Handler());         button2.addActionListener(new Button2Handler());         myPanel.add(button1);         // 添加按鈕到面板         myPanel.add(button2);     }     public static void main(String s[]) {         Simple3 gui = new Simple3(); // 新建Simple3組件         frame = new JFrame("Simple3");         // 新建JFrame         // 處理關閉事件的一般方法         frame.addWindowListener(new WindowAdapter() {             public void windowClosing(WindowEvent e) {                 System.exit(0);             }         });         frame.getContentPane().add(myPanel);         frame.pack();         frame.setVisible(true);     } }
相關文章
相關標籤/搜索