Hi,
ich dachte bis jetzt immer, dass der EDT blockiert wird wenn ein JOptionPane per showConfirmDialog angezeigt wird solange der Benutzer den Dialog nicht geschlossen hat.
Ist aber wohl nicht ganz so, legt man zuvor noch ein Event in die EventQueue wird dieses ausgeführt während der Dialog noch angezeigt wird.
Beispielcode:
Liefert folgende Konsolenausgabe:
Showing JOptionPane...
LATER
Result: 1
Kann man irgendwie sicherstellen, dass wirklich gewartet wird mit der weiteren Ausführung im EDT bis der Dialog geschlossen wurde?
Vielleicht hab ich mich zu blöd angestellt aber ich konnte zu der Problematik auch nirgends etwas finden.
ich dachte bis jetzt immer, dass der EDT blockiert wird wenn ein JOptionPane per showConfirmDialog angezeigt wird solange der Benutzer den Dialog nicht geschlossen hat.
Ist aber wohl nicht ganz so, legt man zuvor noch ein Event in die EventQueue wird dieses ausgeführt während der Dialog noch angezeigt wird.
Beispielcode:
Java:
public class JOptionPaneEDTTest
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
start();
}
});
}
private static void start()
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
System.out.println("LATER");
}
});
System.out.println("Showing JOptionPane...");
int result = JOptionPane.showConfirmDialog(null, "Message", "Title", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE);
System.out.println("Result: " + result);
}
}
Liefert folgende Konsolenausgabe:
Showing JOptionPane...
LATER
Result: 1
Kann man irgendwie sicherstellen, dass wirklich gewartet wird mit der weiteren Ausführung im EDT bis der Dialog geschlossen wurde?
Vielleicht hab ich mich zu blöd angestellt aber ich konnte zu der Problematik auch nirgends etwas finden.