【问题标题】:How to perform a task before a window/frame is closed?如何在关闭窗口/框架之前执行任务?
【发布时间】:2013-04-03 04:21:52
【问题描述】:

JFrame 提供了一个方法 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 。我想在这个 Frame 实际关闭之前运行一些代码。我该怎么做?

【问题讨论】:

  • 如果您想否决关闭,您还需要将setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) 更改为类似于setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE) 的名称
  • @MadProgrammer 是的,但是不要忘记运行实际的退出代码
  • @WChargin 你为什么要这样做? ... ;)

标签: java swing jframe


【解决方案1】:
JFrame frame = new JFrame();
frame.addWindowListener(new WindowAdapter(){

    public void windowClosing(WindowEvent e){
        // The window is closing
    }

});

【讨论】:

    【解决方案2】:

    实现 WindowListener 并捕获窗口关闭事件。有点像-

        yourWindow.addWindowListener(new WindowAdapter() {
            @Override
             public void windowClosing(WindowEvent e) {
                 // do something here
             }
        });
    

    【讨论】:

    【解决方案3】:

    这样做

    frame.addWindowsListener(new WindowAdapter() {
    
        public void windowClosing() {
            // do your work here
            frame.dispose();
        }         
    }
    

    【讨论】:

      【解决方案4】:

      请参考WindowListener文档

      【讨论】:

      • JFrame API 中是否有一些方法可以让您在关闭方法之前运行它?
      • @SuperStar 将您自己的(用户定义的)方法放入:public void windowClosing() {yourMethod();}
      猜你喜欢
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      相关资源
      最近更新 更多