dispose() is not the same as setDefaultCloseOperation(JFrame



我注意到,如果设置了setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),关闭框架将在任务管理器中结束其进程,但如果我实现WindowListener并手动处理()框架,进程将保留。。。可能是因为new Runnable()我有这样的东西:

new Runnable() {
    void run() {
    Jsch tunnel=new Jsch();
    JFrame frame=new JFrame();
    frame.addWindowListener(new WindowListener() { frame.dispose(); } ); // imagine that this is legal 
    frame.setVisible(true);
    }
}

任何人都可以告诉我,如何手动结束某个应用程序创建的流程?

来自API文档。

  • EXIT_ON_CLOSE(在JFrame中定义):使用系统退出方法退出应用程序。仅在应用程序中使用此选项

所以要强制退出调用System.exit(0);

当所有顶级窗口都被处理后,AWT事件调度线程可以关闭(如果需要,可以创建一个新的)。当进程中没有剩余的非守护进程线程时,它将退出。

最新更新