Java JDialog需要45秒左右的时间才能关闭

Java JDialog需要45秒左右的时间才能关闭,java,swing,jframe,jdialog,Java,Swing,Jframe,Jdialog,我有一个MyDialog,它扩展了JDialog,当我关闭MyDialog时,大约需要30-45秒MyDialog是我的主窗体JFrame的子窗体,在关闭MyDialog之前,焦点无法进入主窗口。MyDialog需要时间关闭对话框的原因是什么 对于关闭操作,我设置: setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE) 几乎所有像这样的问题都是因为你在EDT线程中做的事情需要很长时间。对话框关闭后,您要做什么?您是否根据用户单击的按钮执行操作?确

我有一个
MyDialog
,它扩展了
JDialog
,当我关闭
MyDialog
时,大约需要30-45秒
MyDialog
是我的主窗体
JFrame
的子窗体,在关闭
MyDialog
之前,焦点无法进入主窗口。
MyDialog
需要时间关闭对话框的原因是什么

对于关闭操作,我设置:

setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE)

几乎所有像这样的问题都是因为你在EDT线程中做的事情需要很长时间。对话框关闭后,您要做什么?您是否根据用户单击的按钮执行操作?确保这些操作快速执行或在新线程中执行。

如果不查看实现该对话框的代码,就无法判断。如果它有线程,或者有很多资源,那可能是个问题。我总是让对话框返回,然后将对话框变量设置为null,这样垃圾收集器就可以为我清除它。一些代码示例如何?更广泛地说,更喜欢组合而不是继承。不扩展对话框,只使用标准对话框的实例。使用jvisualvm或Netbeans profiler对其进行配置。是否从小程序显示对话框?