javax.swing.JDialog在失去焦点时冻结?

时间:2013-12-18 15:52:30

标签: java swing freeze

我正在使用Swing编写应用程序。我有我的主应用程序框架(javax.swing.JFrame)可以打开我的第一个javax.swing.JDialog,名为ClientMngDialog,其中包含一个填充了从我的数据库加载的数据的javax.swing.JTable

当我在表格中选择一个客户端时,我想在第一个上面打开第二个javax.swing.JDialog,名为ClientEditDialog,然后我可以编辑所选客户端的信息。

两个javax.swing.JDialog都使用Dialog.ModalityType.DOCUMENT_MODAL,因为Javadoc说:

文档模式对话框会阻止同一文档中的所有窗口,但子窗口中的窗口除外。在此上下文中,文档是共享共同祖先的窗口层次结构,称为文档根目录,它是没有所有者的最近祖先窗口。

第一个对话框工作正常,没有任何问题发生。但是第二个,超过第一个,冻结当我点击对话框外的其他地方时(也许我可以认为它是失去焦点)。它上面的所有组件都不再响应,我唯一能做的就是点击它的关闭按钮。

我已经尝试了Dialog.ModalityType.APPLICATION_MODAL,没有帮助,总是同样的问题。我已将SwingUtilites.isEventDispatchThread()放在任何地方,并按预期返回true

有人知道吗?

P.S。我正在使用Debian Wheezy和Xfce 4 Desktop。

1 个答案:

答案 0 :(得分:0)

重新启动计算机后问题消失了。真的很奇怪,我不知道为什么。