我正在编写一个运行 Ubuntu 10.10 的 Java 桌面应用程序。一切正常,除了大约十分之一,当我调用 JOptionPane.showMessageDialog(null, message) 时,对话框窗口出现但它是空的——只是标准的灰色背景。奇怪的是,有几次发生这种情况时,我能够单击“确定”按钮应该在的位置,并且成功地注册了单击。有谁知道这可能是什么原因?
问问题
2468 次
3 回答
3
您是否正在显示来自Event Dispatch Thread的对话框?如果违反Swings单线程规则,可能会不时出现带有此类症状的奇怪错误。
于 2011-01-19T21:18:57.173 回答
2
您使用的是哪个 JVM?确保它不是GCJ(因为它通常是默认的 Ubuntu/Debian)。它的摇摆实现有点奇怪,并且经常会引发类似的奇怪行为。
于 2011-01-19T20:26:23.087 回答
0
我订阅了 Uhlen 的帖子。最可能的原因是您可能没有将 Event Dispatch Thread 用于 Swing 代码。例子:
try {
EventQueue.invokeAndWait(new Runnable() {
@Override
public void run() {
JOptionPane.showConfirmDialog(null, "Message");
}
});
} catch (InterruptedException ex) {
} catch (InvocationTargetException ex) {
}
于 2011-03-25T09:40:50.227 回答