我有一个扩展JFrame的类,它代表我的程序的对话窗口。此对话框通过文本字段接受用户输入。根据输入的不同,如果需要,窗口也可以使用不同的消息(存储为JLabel)进行更新。
我注意到当我点击对话框中的按钮(在我的代码中,处理对话框)时,如果我再次激活对话框(通过选择首先启动对话框的控件),文本I之前进入过,而且JLabel的状态仍然存在。我正在寻找一种方法来杀死"当对话框消失时,对话框的运行实例,所以当它再次出现时,它是" new,"带有空白文本字段和默认JLabel。这可能吗?
答案 0 :(得分:2)
听起来你正在维护对框架的引用。
相反,您可能希望使用JFrame#setDefaultCloseOperation(JFrame.DISPOSE)
处理本机资源下的框架,并在需要时重新创建它。
<强>更新强>
完成主代码中的框架后,只需将变量设置为null
即可。在显示框架的代码中,您需要执行null
检查并根据需要重新创建框架
答案 1 :(得分:0)
您是否尝试设置JFrame#setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
??
答案 2 :(得分:0)
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
如果您的程序打开多个窗口,这将只关闭一个窗口。当只剩下一个窗口并且关闭时,程序停止。