我有,我想从一个JButton也进一步关闭比窗口上的标准的X按钮windowbuilderpro开发的一类,所以这里的类的实例:从一个JButton过程中关闭的JFrame仍然活着,
public class MainWindow {
public JFrame frame;
public MainWindow() {
initialize();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void show() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
//Show the main Frame
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
当我从X按钮关闭窗口时,窗口正确关闭,进程终止。
当我关闭,而不是从一个JButton有这个监听器:
mntmExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Close the application main form
frame.setVisible(false);
frame.dispose();
}
});
框架窗口接近正常,但该过程仍然活着,为什么?
正如你可以看到有开始和持续终止AWT-关闭线程,我怎么能做到这一点还关闭应用程序的X按钮相同的行为呢?
注:
System.exit(0);是不适合的,因为它也终止了应用程序,如果有另一个后台运行线程,我不想这样做。 MainWindow类应该关闭并释放它的资源,这与使用关闭MainWindow实例的X按钮关闭应用程序的行为相同,但如果有后台线程正在运行,它不会杀死它们,而是等待它们完成工作。
环境:
- JDK 7
- 的Eclipse 3.7.1
是我应该befo说回复: - 为了更快地获得更好的帮助,请发布[SSCCE](http://pscode.org/sscce.html)。在SSCCE中,一个松散的计时器会很明显。而且由于我提到的是代码,你可以选择缩进代码的逻辑样式之一,并坚持以后的帖子?我花了很长时间重新格式化并理解了代码,而不是将代码转换为工作代码。 –