2

私は本番コードでこのスタイルを使用しています:

if (SwingUtilities.isEventDispatchThread()) {
    JOptionPane.showMessageDialog(parent, "message", "title", JOptionPane.INFORMATION_MESSAGE);
} else {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            JOptionPane.showMessageDialog(parent, "message", "title", JOptionPane.INFORMATION_MESSAGE);
        }
    });
}

ほとんどの場合は問題なく動作しますが、タイトルだけの空白のダイアログが表示されることがあります。この問題について何か考えはありますか?

4

1 に答える 1

0

それはとのせいだと思いSwingUtilities.isEventDispatchThread()ます SwingUtilities.invokeLater();

しかし、あなたのコードは正しいですか?

これらはの実装ですshowMessageDialog()

showMessageDialog(Component c, Object msg);

showMessageDialog(Component c, Object msg, String title, int messageType)

showMessageDialog(Component c, Object msg, String title, int messageType, Icon icon)

しかし、あなたのコードでは、最初の引数はString!!

于 2013-03-22T05:28:40.387 に答える