我创建了JDialog
并将其设置为setUndecorated(true)
- 它没有默认的“关闭”按钮。每次按下主JDialog
上的某个按钮时,都会创建此JFrame
类。此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
。
答案 0 :(得分:4)
您可以在JDialog上调用dispose()
来释放资源,尽管我听说仍然可能发生内存泄漏,尤其是在软引用和强引用方面。
请注意,您的问题中的此陈述令人困惑:
所以我想把这个JDialog类设置为null
您不能将类设置为null,只能设置实例变量。