記錄一下便於自己查看
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 }