Java Swing 为 EXIT_ON_CLOSE 添加动作监听器

新手上路,请多包涵

我有一个简单的图形用户界面:

     public class MyGUI extends JFrame{

        public MyGUI(){
           run();
        }

        void run(){
           setSize(100, 100);
           setVisible(true);
           setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// maybe an action listener here
        }
    }

我想打印出这条信息:

  System.out.println("Closed");

当 GUI 关闭时(当按下 X 时)。我怎样才能做到这一点?

原文由 hamid 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 458
2 个回答

尝试这个。

 addWindowListener(new WindowAdapter()
{
    @Override
    public void windowClosing(WindowEvent e)
    {
      System.out.println("Closed");
      e.getWindow().dispose();
    }
});

原文由 prasanth 发布,翻译遵循 CC BY-SA 4.0 许可协议

JFrame 的构造函数中编写此代码:

 this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
this.addWindowListener(new java.awt.event.WindowAdapter() {
    @Override
    public void windowClosing(java.awt.event.WindowEvent e) {
        System.out.println("Uncomment following to open another window!");
        //MainPage m = new MainPage();
        //m.setVisible(true);
        e.getWindow().dispose();
        System.out.println("JFrame Closed!");
    }
});

原文由 ersks 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题