Wie starte ich JOptionPane auf EDT?

Ich binimmer noch Probleme mit dem Rohling habenJOptionPanes. Basierend auf Recherchen bei SO und inJava DocsDies hat offensichtlich etwas damit zu tun, dass man das nicht benutztEDT. Meine Frage ist, wie genau das gehtEDT und seine Methoden gelten fürJOptionPane? Zum Beispiel macht die Terminalfehlerausgabe deutlich, dass dieJOptionPane unten läuft nicht auf demEDT. Was fehlt konkret und wie funktioniert sowas?Runnable sich einfügen?

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

Eine Antwort schlug das Hinzufügen vorinvokeLater. In BlueJ scheint dies jedoch nicht sehr gut zu funktionieren.

Außerdem gibt isEventDispatchThread () immer noch den Fehler im Terminal zurück. Liegt das einfach daran, dass es jetzt am falschen Ort ist?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage