【发布时间】:2011-03-19 12:35:07
【问题描述】:
(Java SE 6) 我正在尝试创建一个弹出对话框,在我的程序执行一些耗时的工作时显示“请稍候”消息。为此,我选择使用无模式的 JDialog,以便程序在 JDialog 可见时继续运行并工作(如果您使用模式的,程序将停止,直到用户关闭对话框) .
问题在于,当您以这种方式使用无模式对话框时,会出现带有标题的 JDialog,但内容不会出现(我猜它们由于某种原因没有被绘制)。我试过调用 repaint 等,但似乎没有任何效果。
现在,根据互联网上的一群人的说法,这是 Swing 的一个真正错误,我发现的唯一答案是不要以这种方式做事,而是找到一些其他方法来通知用户等待。我很好奇这里是否有人以前遇到过这个问题并找到了解决方法。
谢谢!
【问题讨论】:
-
错误引用会很有帮助。
-
“我选择使用无模式的 JDialog,以便程序在 JDialog 可见时继续运行并工作”。模态对话框不阻止程序其余部分中的任何线程运行,仅阻止用户访问父控件。当用户在 JOptionPane 中弹出配置选项时,我有 2D 动画继续渲染。
-
@Andrew Thompson 是正确的;这是一个简短的example。我仍然很好奇您要避免什么“错误”。
标签: java user-interface swing jdialog modeless