JoptionPane有时候是空白的

时间:2013-03-22 03:16:00

标签: java swing user-interface joptionpane event-dispatch-thread

我在我的生产代码中使用这种风格:

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);
        }
    });
}

它在大多数情况下效果很好,但有时它只显示一个只有标题的空白对话框。对这个问题有什么看法吗?

1 个答案:

答案 0 :(得分: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 !!