我在我的生产代码中使用这种风格:
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);
}
});
}
它在大多数情况下效果很好,但有时它只显示一个只有标题的空白对话框。对这个问题有什么看法吗?
答案 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
!!