“杀死”一个开放的JFrame

时间:2013-02-17 05:54:02

标签: java swing jdialog

我有一个扩展JFrame的类,它代表我的程序的对话窗口。此对话框通过文本字段接受用户输入。根据输入的不同,如果需要,窗口也可以使用不同的消息(存储为JLabel)进行更新。

我注意到当我点击对话框中的按钮(在我的代码中,处理对话框)时,如果我再次激活对话框(通过选择首先启动对话框的控件),文本I之前进入过,而且JLabel的状态仍然存在。我正在寻找一种方法来杀死"当对话框消失时,对话框的运行实例,所以当它再次出现时,它是" new,"带有空白文本字段和默认JLabel。这可能吗?

3 个答案:

答案 0 :(得分:2)

听起来你正在维护对框架的引用。

相反,您可能希望使用JFrame#setDefaultCloseOperation(JFrame.DISPOSE)处理本机资源下的框架,并在需要时重新创建它。

<强>更新

完成主代码中的框架后,只需将变量设置为null即可。在显示框架的代码中,您需要执行null检查并根据需要重新创建框架

答案 1 :(得分:0)

您是否尝试设置JFrame#setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ??

答案 2 :(得分:0)

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

如果您的程序打开多个窗口,这将只关闭一个窗口。当只剩下一个窗口并且关闭时,程序停止。