JAVA GUI学习 - 窗口【x】按钮关闭事件触发器:重写processWindowEvent(WindowEvent e)方法

 1 public class WindowListenerKnow extends JFrame

 2 {

 3     public WindowListenerKnow()

 4     {

 5         this.setBounds(300, 100, 400, 400);

 6         this.setTitle("我是测试【x】按钮关闭方法的");

 7         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 8     }

 9     public void init()

10     {

11         

12     }

13     public static void main(String[] args)

14     {

15         WindowListenerKnow windowListenerKnow = new WindowListenerKnow();

16         windowListenerKnow.setVisible(true);

17     }

18     

19     /**

20      * 这里需要重写窗口的事件中转方法,而不是实现WindowListener接口,因为程序时从这个方法processWindowEvent进入到窗口关闭事件的

21      */

22     @Override

23     protected void processWindowEvent(WindowEvent e)

24     {

25         //这里需要对进来的WindowEvent进行判断,因为,不仅会有窗口关闭的WindowEvent进来,还可能有其他的WindowEvent进来

26         if (e.getID() == WindowEvent.WINDOW_CLOSING)

27         {

28             int option = JOptionPane.showConfirmDialog(null, "是否关闭程序?", "程序退出提示", JOptionPane.OK_CANCEL_OPTION);

29             if (option == JOptionPane.OK_OPTION)

30             {

31                 super.processWindowEvent(e);

32             }

33             else {

34                 //用户选择不退出本程序,因此可以继续留在本窗口

35             }

36         }

37         else {

38             super.processWindowEvent(e);

39         }

40     }

41 }

 

你可能感兴趣的:(process)