0

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

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

4

3 回答 3

2

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

相反,您可能希望用于JFrame#setDefaultCloseOperation(JFrame.DISPOSE)处理原生资源底层的框架,并在需要时重新创建它。

更新

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

于 2013-02-17T06:04:10.320 回答
0

你试过设置JFrame#setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)吗?

于 2013-02-17T05:58:03.897 回答
0

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

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

于 2013-02-17T19:34:26.477 回答