JAVA:事件監聽器之WindowAdapter類(針對窗口事件)


WindowAdapter類:

1.接收窗口事件的抽象適配器類。此類中的方法為空。此類存在的目的是方便創建偵聽器對象。

2.擴展此類可創建 WindowEvent 偵聽器並為所需事件重寫該方法。(如果要實現 WindowListener 接口,則必須定義該接口內的所有方法。此抽象類將所有方法都定義為 null,所以只需針對關心的事件定義方法。)

3.使用擴展的類可以創建偵聽器對象,然后使用窗口的 addWindowListener 方法向該窗口注冊偵聽器。當通過打開、關閉、激活或停用、圖標化或取消圖標化而改變了窗口狀態時,將調用該偵聽器對象中的相關方法,並將 WindowEvent 傳遞給該方法。 

4.方法摘要:

方法摘要
void windowActivated(WindowEvent e)
激活窗口時調用。
void windowClosed(WindowEvent e)
當窗口已被關閉時調用。
void windowClosing(WindowEvent e)
窗口正處在關閉過程中時調用。
void windowDeactivated(WindowEvent e)
停用窗口時調用。
void windowDeiconified(WindowEvent e)
取消圖標化窗口時調用。
void windowGainedFocus(WindowEvent e)
該 Window 被設置為聚焦 Window 時調用,聚焦 Window 意味着該 Window 或其某個子組件將接收鍵盤事件。
void windowIconified(WindowEvent e)
圖標化窗口時調用。
void windowLostFocus(WindowEvent e)
該 Window 不再為聚焦 Window 時調用,不再為聚焦 Window 意味着鍵盤事件不再傳遞到該 Window 或其任意子組件。
void windowOpened(WindowEvent e)
已打開窗口時調用。
void windowStateChanged(WindowEvent e)
窗口狀態改變時調用。

——摘自JDK6API

注:使用前,需使用import java.awt.enent.*;調入

例子:

 例子1

 1 import javax.swing.*;
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 class MyWindowListener extends WindowAdapter
 5 {
 6    public void windowClosing(WindowEvent e)//窗口正處在關閉過程中時調用
 7    {
 8        System.out.println("關閉");
 9        System.exit(0);
10     }
11 }
12 public class TestWindowListener extends JFrame
13 {
14    public TestWindowListener()
15    {
16        setLayout(new FlowLayout(FlowLayout.CENTER));
17        add(new JButton("我是一個按鈕"));
18        addWindowListener(new MyWindowListener());
19     }
20     public static void main(String[] agrs)
21     {
22         JFrame frame = new TestWindowListener();
23         frame.setSize(400,400);
24         frame.setLocation(400,300);
25         frame.setVisible(true);
26     }
27 }

 

 例子2

 1 import javax.swing.*;
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 public class TestWindowListener2 extends JFrame
 5 {
 6    public TestWindowListener2()
 7    {
 8        setLayout(new FlowLayout(FlowLayout.CENTER));
 9        add(new JButton("我是一個按鈕"));
10        addWindowListener(new WindowAdapter()
11        {
12            public void windowClosing(WindowEvent e)//窗口正處在關閉過程中時調用
13            {
14                System.out.println("我關");
15                System.exit(0);
16             }
17         }
18        );
19     }
20     public static void main(String[] agrs)
21     {
22         JFrame frame = new TestWindowListener2();
23         frame.setSize(400,400);
24         frame.setLocation(400,300);
25         frame.setVisible(true);
26     }
27 }

 

例子3

 1 import javax.swing.*;
 2 import java.awt.*;
 3 import java.awt.event.*;
 4 class MyWindowListener extends WindowAdapter
 5 {
 6    public void windowClosing(WindowEvent e)//窗口正處在關閉過程中時調用
 7    {
 8        System.out.println("關閉");
 9        System.exit(0);
10     }
11     public void windowActivated(WindowEvent e)//激活窗口時用
12     {
13         System.out.println("哈哈,我被激活了!");
14     }
15     public void windowOpened(WindowEvent e)//已打開窗口時調用
16     {
17         System.out.println("我被打開了,哈哈,我超神了!");
18     }
19 }
20 public class TestWindowListener3 extends JFrame
21 {
22    public TestWindowListener3()
23    {
24        setLayout(new FlowLayout(FlowLayout.CENTER));
25        add(new JButton("我是一個按鈕"));
26        addWindowListener(new MyWindowListener());
27     }
28     public static void main(String[] agrs)
29     {
30         JFrame frame = new TestWindowListener3();
31         frame.setSize(400,400);
32         frame.setLocation(400,300);
33         frame.setVisible(true);
34     }
35 }

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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