可能重复:
如何在 EDT 上运行 JOptionPane?
在看似随机的时间(即如果程序运行足够多次),JOptionPane
我编写的窗口将显示一个空白窗口,关闭和确定按钮在那里,但没有我编码的文本。这似乎JOptionPane
最终发生在任何编写的程序中;有什么方法可以防止这种情况发生吗?FWIW 这很少(如果有的话)连续发生两次。
我刚刚写了这个,连续运行了15次,没有任何问题。这与我在使用JOptionPane
. 有什么遗漏吗?
import javax.swing.JOptionPane;
public class SimpleJOptionPane
{
public static void main(String[] args)
{
JOptionPane.showMessageDialog(null, "Hello, World!");
}//end main
}//end class SimpleJOptionPane
一般不会出现这个问题。JOptionPane
通常与预期的文本一起显示。当它不起作用时,在我不知情的情况下会发生什么变化?
正如评论中所建议的,我正在研究使用 EventQueue.isDispatchThread()
如您所见,下面的代码使用另一种方法来显示 JOptionPane。这是一个适当的解决方案吗?
final String ERR_TITLE = "Error";
final String ERR_MSG = "An exception has occured; please start over.";
showError(ERR_MSG, ERR_TITLE);
public static void showError(final String MESSAGE, final String TITLE)
{
JOptionPane.showMessageDialog(null, MESSAGE, TITLE, JOptionPane.ERROR_MESSAGE);
}//end showError