我已经创建了 JDialog
并将其设置为 setUndecorated(true)
- 它没有默认的“关闭”按钮。每次按下主 JFrame
上的某个按钮时,都会创建此 JDialog
类。此 JDialog
对话框包含具有 MouseListener
的按钮“取消”:
...
public void mouseClicked(MouseEvent e) {
setVisible(false);
// How to set this JDialog class to null - release the resources?
}
...
所以我想将这个 JDialog 实例设置为 null
- 因为每次在 JFrame
上按下按钮都会创建新的 JDialog
实例 - 这就是使用资源。我该如何解决这个问题?
编辑
我发现,如果我每次都在鼠标单击时创建新的 JDialog
,然后将其设置为可见 - JDialog
窗口在几毫秒内似乎没有得到很好的验证,之后就可以了.所以我认为更有效的方法是创建新的 JDialog
实例,然后每次设置它 setVisible(true)
或 setVisible(false)
当鼠标单击一些 JFrame/JDialog
按钮。
最佳答案
您可以在 JDialog 上调用 dispose()
来释放资源,尽管我听说内存泄漏仍然会发生,尤其是在软引用和强引用方面。
请注意,您问题中的这个陈述令人困惑:
So I want set this JDialog class to null
不能将类设置为 null,只能设置实例变量。
关于java - setVisible(false) 后如何将 JDialog 设置为 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147805/