總結一下WindowListener的用法


記錄一下便於自己查看

1.WindowListener

java.awt.event
接口 WindowListener

public interface WindowListener
extends
EventListener

用於接收窗口事件的偵聽器接口。旨在處理窗口事件的類要么實現此接口(及其包含的所有方法),要么擴展抽象類 WindowAdapter(僅重寫所需的方法)。然后使用窗口的 addWindowListener 方法將從該類所創建的偵聽器對象向該 Window 注冊。當通過打開、關閉、激活或停用、圖標化或取消圖標化而改變了窗口狀態時,將調用該偵聽器對象中的相關方法,並將 WindowEvent 傳遞給該方法。

windowOpened

void windowOpened(WindowEvent e)
窗口首次變為可見時調用。

windowClosing

void windowClosing(WindowEvent e)
用戶試圖從窗口的系統菜單中關閉窗口時調用。


windowClosed

void windowClosed(WindowEvent e)
因對窗口調用 dispose 而將其關閉時調用。


windowIconified

void windowIconified(WindowEvent e)
窗口從正常狀態變為最小化狀態時調用。對於很多平台而言,已最小化的窗口將顯示為窗口 iconImage 屬性中所指定的圖標。


windowDeiconified

void windowDeiconified(WindowEvent e)
窗口從最小化狀態變為正常狀態時調用。


windowActivated

void windowActivated(WindowEvent e)
將 Window 設置為活動 Window 時調用。只有框架或對話框可以成為活動 Window。本機的窗口系統可能使用特殊裝飾表示活動 Window 或其子窗口,如高亮顯示標題欄。活動 Window 要么是聚焦 Window,要么是作為聚焦 Window 所有者的第一個 Frame 或 Dialog。
windowDeactivated

void windowDeactivated(WindowEvent e)
當 Window 不再是活動 Window 時調用。只有框架或對話框可以成為活動 Window。本機的窗口操作系統可能使用特殊裝飾表示活動 Window 或其子窗口,如高亮顯示標題欄。活動 Window 要么是聚焦 Window,要么是作為聚焦 Window 所有者的第一個 Frame 或 Dialog。

 1.實現WindowListener接口

 1 package tst;
 2 
 3 import java.awt.TextArea;
 4 import java.awt.event.WindowEvent;
 5 import java.awt.event.WindowListener;
 6 
 7 import javax.swing.JFrame;
 8 
 9 public class Test {
10     final static int x=100;
11     final static int y=50;
12     final static int width=500;
13     final static int height=300;
14     static TextArea text;
15     public static void main(String[] args) {
16         // TODO Auto-generated method stub
17          text=new TextArea();
18          JFrame f = new JFrame();
19          f.add(text);
20          f.setTitle("Closing Frame with Window Listener");
21          f.setBounds(x,y,width,height);
22          f.addWindowListener(new MyWindowListener());
23          f.setVisible(true);
24     }
25     
26      static class MyWindowListener implements WindowListener {
27          
28         @Override
29         public void windowOpened(WindowEvent e) {
30             // TODO Auto-generated method stub
31             System.out.println("windowOpened");
32             text.setText("窗口首次變為可見時調用");
33         }
34 
35         @Override
36         public void windowClosing(WindowEvent e) {
37             // TODO Auto-generated method stub
38             System.out.println("windowClosing");
39             text.setText("用戶試圖從窗口的系統菜單中關閉窗口時調用");
40         }
41 
42         @Override
43         public void windowClosed(WindowEvent e) {
44             // TODO Auto-generated method stub
45             System.out.println("windowClosed");
46             text.setText("因對窗口調用 dispose 而將其關閉時調用");
47         }
48 
49         @Override
50         public void windowIconified(WindowEvent e) {
51             // TODO Auto-generated method stub
52             System.out.println("windowIconified");
53             text.setText("窗口從正常狀態變為最小化狀態時調用");
54         }
55 
56         @Override
57         public void windowDeiconified(WindowEvent e) {
58             // TODO Auto-generated method stub
59             System.out.println("windowDeiconified");
60             text.setText("窗口從最小化狀態變為正常狀態時調用");
61         }
62 
63         @Override
64         public void windowActivated(WindowEvent e) {
65             // TODO Auto-generated method stub
66             System.out.println("windowActivated");
67             text.setText("將 Window 設置為活動 Window 時調用");
68         }
69 
70         @Override
71         public void windowDeactivated(WindowEvent e) {
72             // TODO Auto-generated method stub
73             System.out.println("windowDeactivated");
74             text.setText("當 Window 不再是活動 Window 時調用");
75         }
76 
77         
78          
79        }
80     
81     
82     }

 

 2.繼承WindowAdapter

java.awt.event
類 WindowAdapter

public abstract class WindowAdapter
extends
Object
implements
WindowListener,
WindowStateListener,
WindowFocusListener

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

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

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

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)
窗口狀態改變時調用。

 1 package tst;
 2 
 3 import java.awt.TextArea;
 4 import java.awt.event.WindowAdapter;
 5 import java.awt.event.WindowEvent;
 6 
 7 import javax.swing.JFrame;
 8 
 9 public class Test {
10     final static int x=100;
11     final static int y=50;
12     final static int width=500;
13     final static int height=300;
14     static TextArea text;
15     public static void main(String[] args) {
16         // TODO Auto-generated method stub
17          text=new TextArea();
18          JFrame f = new JFrame();
19          f.add(text);
20          f.setTitle("Closing Frame with Window Listener");
21          f.setBounds(x,y,width,height);
22          f.addWindowListener(new MyWindowListener());
23          f.setVisible(true);
24     }
25     
26      static class MyWindowListener extends WindowAdapter {
27          
28         @Override
29         public void windowOpened(WindowEvent e) {
30             // TODO Auto-generated method stub
31             System.out.println("windowOpened");
32             text.setText("窗口首次變為可見時調用");
33         }
34 
35         @Override
36         public void windowClosing(WindowEvent e) {
37             // TODO Auto-generated method stub
38             System.out.println("windowClosing");
39             text.setText("用戶試圖從窗口的系統菜單中關閉窗口時調用");
40         }
41 
42         @Override
43         public void windowClosed(WindowEvent e) {
44             // TODO Auto-generated method stub
45             System.out.println("windowClosed");
46             text.setText("因對窗口調用 dispose 而將其關閉時調用");
47         }
48 
49         @Override
50         public void windowIconified(WindowEvent e) {
51             // TODO Auto-generated method stub
52             System.out.println("windowIconified");
53             text.setText("窗口從正常狀態變為最小化狀態時調用");
54         }
55 
56         @Override
57         public void windowDeiconified(WindowEvent e) {
58             // TODO Auto-generated method stub
59             System.out.println("windowDeiconified");
60             text.setText("窗口從最小化狀態變為正常狀態時調用");
61         }
62 
63         @Override
64         public void windowActivated(WindowEvent e) {
65             // TODO Auto-generated method stub
66             System.out.println("windowActivated");
67             text.setText("將 Window 設置為活動 Window 時調用");
68         }
69 
70         @Override
71         public void windowDeactivated(WindowEvent e) {
72             // TODO Auto-generated method stub
73             System.out.println("windowDeactivated");
74             text.setText("當 Window 不再是活動 Window 時調用");
75         }
76 
77          
78        }
79     
80     
81     }

 


免責聲明!

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



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