Jak uruchomić JOptionPane w EDT?
Jestemnadal problemy z pustymJOptionPane
s. Na podstawie badań w SO i inDokumenty Java, to oczywiście ma coś wspólnego z nie używaniemEDT
. Moje pytanie brzmi, jak dokładnieEDT
i jego metody mają zastosowanie doJOptionPane
? Na przykład wyjście błędu terminala sprawia, że jest całkiem jasne, żeJOptionPane
poniżej nie jest uruchamiany naEDT
. Czego brakuje konkretnie i jak coś takiegoRunnable
pasować?
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
Odpowiedź sugerowała dodanieinvokeLater
. Jednak w BlueJ nie wydaje się to zbyt dobre.
Również isEventDispatchThread () nadal zwraca błąd w terminalu. Czy to dlatego, że jest teraz w złym miejscu?