"Kill"一个开放的JFrame。



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

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

听起来像是在维护对框架的引用。

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

更新

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

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

frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

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

最新更新