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 }