我正在使用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。
答案 0 :(得分:0)
重新启动计算机后问题消失了。真的很奇怪,我不知道为什么。