我仍然遇到空白JOptionPane
s 的问题。根据 SO 和Java Docs的研究,这显然与不使用EDT
. EDT
我的问题是及其方法究竟是如何应用的JOptionPane
?例如,终端错误输出清楚地表明JOptionPane
以下内容未在EDT
. 具体缺少什么,以及类似的东西如何Runnable
适应?
import javax.swing.*;
public class PaneDemo
{
public static void main(String[] args)
{
final String[] TEXT ={
//message
"Hello, World!",
//title
"Greeting"};//end TEXT
showMyPane(TEXT);
}//end main
public static void showMyPane(final String[] TEXT)
{
JOptionPane.showMessageDialog(null, TEXT[0], TEXT[1],
JOptionPane.INFORMATION_MESSAGE);
if(!SwingUtilities.isEventDispatchThread())
{
System.err.println("Err: GUI failed to use EDT.");
}//end if(!SwingUtilities.isEventDispatchThread())
}//end showMyPane
}//end class PaneDemo
一个答案建议添加invokeLater
. 然而,这似乎在 BlueJ 中渲染得不是很好。
同样 isEventDispatchThread() 仍在终端中返回错误。仅仅是因为它现在在错误的位置吗?