当屏幕上已有对话框时,如何避免显示对话框?
详细信息:在我的应用程序中,许多计时器正在运行。如果发生 fatal error ,所有受影响的线程都将显示 JDialog(通过 swingx.JXErrorPane.showDialog()),这是不希望的。即使我取消所有正在运行的计时器,仍然会同时出现一些对话框。如何才能做到只出现一个对话框?
我试图使调用 showDialog() 的方法同步,这导致我的整个 GUI 被阻止。使用标志也不起作用。
最佳答案
将对话框转变为观察者并将错误事件发布到这个新观察者(请参阅 Observer Design Pattern )。当事件发生时,对话框应该自行显示(以主框架作为父框架)。在对话框的表格中显示最近的错误。将新错误添加到该表的底部。
另一个选项是在主框架的表格中显示错误。将表格放入 JSplitPane 中,以便用户可以将其最小化。
关于java - 如何防止多个对话框同时出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/805738/