dispose()与setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)不同

时间:2013-06-23 23:19:03

标签: java swing jframe awt windowlistener

我注意到如果设置了setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),关闭框架将结束其在任务管理器中的进程,但是如果我实现WindowListener并手动dispose()框架,则进程将保持...可能是因为 新的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);
    }
}

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

1 个答案:

答案 0 :(得分:3)

来自API docs

  
      
  • EXIT_ON_CLOSE(在JFrame中定义):使用System退出方法退出应用程序。仅在应用程序中使用它。
  •   

因此强制退出电话System.exit(0);

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