2011-01-19 134 views
2

我正在编写运行Ubuntu 10.10的Java桌面应用程序。一切正常,除了大约十分之一的时候,当我打电话给JOptionPane.showMessageDialog(null,message)时,对话窗口出现,但它是空的 - 只是标准的灰色背景。奇怪的是,几次发生这种情况,我已经能够点击确定按钮应该已经和它注册点击罚款。有谁知道什么可能导致这种情况?Java Ubuntu Linux Swing空白窗口

+1

你有代码可以告诉我们吗? – JasCav 2011-01-19 20:11:13

+0

我不介意共享任何代码,但它是几百行代码,我认为任何人都不想阅读。如果这是Java Ubuntu/Linux的问题,我更加好奇,因为我在Ubuntu的多个程序中遇到过这个问题,但从来没有在Windows上遇到过这个问题。 – 2011-01-19 20:28:45

回答

2

您正在使用哪种JVM?确保它不是GCJ(因为它通常默认是Ubuntu/Debian)。它的摆动实现有点奇怪,并且会经常引发这样的奇怪行为。

3

您是否在显示Event Dispatch Thread的对话框?如果Swings 单线程规则被违反,可能会不时发生类似此类症状的奇怪错误。

0

我订阅了Uhlen的帖子。最可能的原因是您可能不使用Event Swatch代码的Event Dispatch Thread。例如:

try { 
    EventQueue.invokeAndWait(new Runnable() { 
     @Override 
     public void run() { 
      JOptionPane.showConfirmDialog(null, "Message"); 
     } 
    }); 
} catch (InterruptedException ex) { 

} catch (InvocationTargetException ex) { 

}