【问题标题】:JFrame On Close OperationJFrame 关闭操作
【发布时间】:2012-05-06 04:39:13
【问题描述】:

我想知道是否有办法通过单击“X”让程序在关闭 JFrame 之前执行一些代码。 setDefaultCloseOperation() 方法只接受一个整数。

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

【问题讨论】:

    标签: java swing user-interface jframe windowlistener


    【解决方案1】:
    this.addWindowListener(new WindowAdapter(){
                    public void windowClosing(WindowEvent e){
                        int i=JOptionPane.showConfirmDialog(null, "Seguro que quiere salir?");
                        if(i==0)
                            System.exit(0);//cierra aplicacion
                    }
                });
    

    【讨论】:

      【解决方案2】:

      @Jeffrey 有一个很好的答案,但你应该考虑你想要做什么。如果您真的想在关闭框架时做某事,那么 WindowListener 就是要走的路。但是,如果您正在寻找一个地方来做一些清理和正常关闭的事情,那么您可能想要一个 shutdown hook 来代替。使用 WindowListener,代码只会被触发,正如你所说,用户“点击 X”。但是,如果用户在终端的前台启动应用程序并使用 Ctrl+C 将其终止,该怎么办?如果用户从命令行或任务管理器中终止进程怎么办?

      【讨论】:

      • 哇,谢谢你的回复。我在关闭框架时使用它来保存一些数据。
      • @Sanjay:我选择链接 jdk6 是因为 1)根据我的经验,使用 6 的人比 7 还多,2)Runtime.addShutdownHook() 没有改变 6 和 7 之间的 lick .
      • 好的,点了 :) 但我通常更喜欢链接到最新的文档!
      【解决方案3】:

      您可能有兴趣使用WindowListenerWindowListener tutorial

      【讨论】:

      • 非常感谢。这正是我所追求的。
      • 或者你可以使用WindowAdapter来方便创建监听对象。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 2021-04-17
      相关资源
      最近更新 更多