2011-01-19 110 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) { 

}