Java 当您使用小X关闭GUI时

Java 当您使用小X关闭GUI时,java,multithreading,swing,thread-safety,threadpool,Java,Multithreading,Swing,Thread Safety,Threadpool,如果使用表单右上角的小X关闭GUI,是否也会杀死所有线程 如果没有,您如何捕捉该事件,以便我输入一些关闭代码 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 要在关闭时执行一些代码,请查看以下内容 要在关闭时执行一些代码,请查看以下内容 如果使用表单右上角的小X关闭GUI,是否也会杀死所有线程 是,如果默认关闭操作是Luiggi提到的“关闭时退出”。OTOH最好不要简单地随意“杀死”线程 如果没有,您如何捕捉该事件,以便我输入一些关闭代码 set

如果使用表单右上角的小X关闭GUI,是否也会杀死所有线程

如果没有,您如何捕捉该事件,以便我输入一些关闭代码

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
要在关闭时执行一些代码,请查看以下内容

要在关闭时执行一些代码,请查看以下内容

如果使用表单右上角的小X关闭GUI,是否也会杀死所有线程

是,如果默认关闭操作是Luiggi提到的“关闭时退出”。OTOH最好不要简单地随意“杀死”线程

如果没有,您如何捕捉该事件,以便我输入一些关闭代码

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
在关闭时设置默认关闭操作
DO\u NOTHING\u,并添加
WindowListener
WindowAdapter
。在侦听器中,处理GUI并结束线程

有关详细信息,请参阅

如果使用表单右上角的小X关闭GUI,是否也会杀死所有线程

是,如果默认关闭操作是Luiggi提到的“关闭时退出”
。OTOH最好不要简单地随意“杀死”线程

如果没有,您如何捕捉该事件,以便我输入一些关闭代码

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
在关闭时设置默认关闭操作
DO\u NOTHING\u,并添加
WindowListener
WindowAdapter
。在侦听器中,处理GUI并结束线程


有关详细信息,请参阅。

如果且仅当您在主JFrame上执行
setDefaultCloseOperation(退出时关闭)
时,它将终止线程。测试时发生了什么?即使Luiggi解决了主要问题,您也可以始终添加
WindowListener
,当一个
窗口关闭时,它会激活。如果并且仅当您在主JFrame上执行
setDefaultCloseOperation(关闭时退出)
时,它才会杀死其他线程。测试它时发生了什么?即使Luiggi解决了主要问题,您也可以始终添加一个
WindowListener
,当一个
窗口关闭时激活它。创建其他线程我是否将其放入构造函数:公共类MainWindow扩展javax.swing.JFrame{public MainWindow(){this.pool=Executors.newCachedThreadPool();setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);initComponents()}完全正确,但仅用于“良好样式”:为什么不导入javax.swing.JFrame?这会使代码更易于阅读。我是否将其放入构造函数:公共类MainWindow扩展javax.swing.JFrame{public MainWindow(){this.pool=Executors.newCachedThreadPool();setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);initComponents();}完全正确,但仅适用于“良好样式”:为什么不导入javax.swing.JFrame?这会使您的代码更易于阅读。
DISPOSE\u ON\u CLOSE
也可能是一种选择,我想,除非它需要按照特定顺序执行
DISPOSE
,相对于其他关闭操作。
DISPOSE\u ON\u CLOSE
也可能是一种选择,我想ppose,除非需要按照与其他关闭操作相关的特定顺序执行
dispose