J.O*_*sen 7 java swing multithreading jframe windowlistener
当用户关闭JFrame
窗口时如何调用额外的操作?我必须停止现有的线程.
据我了解,setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
导致框架关闭,其线程停止.螺纹应该在关闭之后JFrame.EXIT_ON_CLOSE
?
客户:
static boolean TERMINATE = false;
public static void main(String[] args) {
// some threads created
while(true) {
if(TERMINATE){
// do before frame closed
break;
}
}
}
private static JPanel startGUI(){
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel gui = new JPanel();
f.add( gui);
f.setSize(500,500);
f.setVisible(true);
return gui;
}
Run Code Online (Sandbox Code Playgroud)
我需要关闭线程正在使用的套接字.这样做的最佳做法是什么?
Jef*_*rey 10
使用JFrame.EXIT_ON_CLOSE
实际上终止了JVM(System.exit
).所有正在运行的线程将自动停止.
如果要在a JFrame
即将关闭时执行某些操作,请使用a WindowListener
.
JFrame frame = ...
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
// close sockets, etc
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14387 次 |
最近记录: |