我的应用程序的主框架启动了一个JFrame线程:
IBM1622GUI cardReadPunchGUI = new IBM1622GUI(); // instantiate
Thread cardReadPunchThread = new Thread(cardReadPunchGUI); // alloc thread
cardReadPunchThread.start(); // call thread's run() method
稍后,大型机需要“销毁” IBM1622GUI(作为“使外围设备脱机”的一部分),并且再后来,需要重新实例化它-大概使用与上述相同的过程。主机应如何做才能基本返回到首次实例化IBM1622GUI之前的状态?
编辑-我可能应该提到IBM1622GUI,即JFrame类,是使用NetBeans作为“ Swing GUI表单”开发的,因此,我可以对源代码进行哪些编辑有一定的限制。
最佳答案
Read this
您应该使用此样式来初始化JFrame。
IBM1622GUI cardReadPunchGUI = null;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
cardReadPunchGUI = new IBM1622GUI();
}
});
When you want to close the JFrame, here is already the question with answers
(由Chap编辑:链接的SO线程非常长且曲折,但归结为简单地使用
cardReadPunchGUI.dispose()
。实际上,这确实令人满意地回答了我的问题,我想对此做出贡献,但是我也希望此注释包含在内。)