java.awt.EventQueue.invokeLater erklärt

Ich bin sehr gespannt, warum wir verwenden müssenjava.awt.EventQueue.invokeLater Schaukelkomponenten zu steuern.

Warum können wir das nicht im normalen Thread machen? Was genau ist hinter den Kulissen los? Woran ich gemerkt habe, wenn ich eine habeJFrame Ich kann die Sichtbarkeit im Haupt-Thread auf true oder false setzen, ohne dass Fehler auftreten, und es scheint zu funktionieren. Also, was genau erreiche ich mitjava.awt.EventQueue.invokeLater? Mir ist auch voll bewusst, dass ich es gebrauchen kannSwingUtilities.invokeLater aberhier erklärtSie scheinen ein und dasselbe zu sein.

Vielen Dank an alle für ihre Erklärung. Hoffentlich ist das eine berechtigte Frage.

EDIT: zur Beantwortung der Wumpz-Frage Wir können einen Jframe erstellen

JFrame frame = new JFrame("Hello world");
frame.setSize(new Dimension(300, 300));
frame.setPreferredSize(new Dimension(300, 300));
frame.setMaximumSize(new Dimension(300, 300));
frame.setMinimumSize(new Dimension(300, 300));
frame.setVisible(true);
frame.pack();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

Und auf dem gleichen Thread wurde folgendes erstellt.

for (int i = 0; i < 34; i++)
{
    System.out.println("Main thread setting to "+(!frame.isVisible()));
    frame.setVisible(!frame.isVisible());
}

Und keine Beschwerden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage