我已经创建了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)
或鼠标单击某些JFrame/JDialog
按钮时将其设置为setVisible(false)
。
您可以在 JDialog 上调用 dispose()
来释放资源,尽管我听说仍然可能发生内存泄漏,尤其是在软引用和强引用方面。
请注意,您问题中的此陈述令人困惑:
所以我想把这个JDialog类设置为空
不能将类设置为 null,只能将实例变量设置为 null。