2

Ubuntu 10.10 を実行する Java デスクトップ アプリケーションを作成しています。JOptionPane.showMessageDialog(null, message) を呼び出すと、約 10 回に 1 回、ダイアログ ウィンドウが表示されますが、空です (標準の灰色の背景のみ)。奇妙なことに、これが発生したときに、[OK] ボタンがあるはずの場所をクリックすることができ、クリックが正常に登録されたことが何度かありました。誰がこれを引き起こす可能性があるか知っていますか?

4

3 に答える 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 の投稿を購読します。最も考えられる原因は、Swing コードに Event Dispatch Thread を使用していない可能性があることです。例:

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 に答える