Swing Wann invokeLater() verwenden?

Status
Nicht offen für weitere Antworten.

icarus2

Top Contributor
Huhu

Ich habe gerade ein par Dinge im Internet über diese Methode gelesen, bin aber nicht ganz sicher wann ich sie wirklich brauchen muss.

Wenn in meinem Programm ein Button geklickt wird, wird ein neuer Thread erzeugt, der jenachdem sehr lange rechnet. Der Algo dazu ist rekursiv und an gewissen Stellen werden Swing Komponenten aktualisiert.

Muss ich dafür nun invokeLater() verwenden? Eigentlich hat es auch ohne immer recht gut geklappt, ausser das merkwürdigerweise an manchen Stellen eine Exception geworfen wurde und das ganze Programm abgebrochen werden musste. Die Probleme sind aufgetreten, als zwei weitere Thread programmiert haben, die ansynchron laufen und auch Swing Komponenten aktualisieren.

Kann mir jmd erklären wann das genau verwendet wird und wiso?
 

Marco13

Top Contributor
invokeLater verwendet man, wenn man aus einen anderen Thread als dem Event-Dispatch-Thread auf Swing-Components zugreift.
Code:
Thread t = new Thread(new Runnable()
{
    public void run()
    {
        macheEineLangeBerechnung();
        someButton.setText("Fertig"); // FALSCH
    }
});
t.start();


Code:
Thread t = new Thread(new Runnable()
{
    public void run()
    {
        macheEineLangeBerechnung();
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                someButton.setText("Fertig"); // RICHTIG
            }
        });
    }
});
t.start();

Wenn man das nicht macht, dann "funktioniert zwar meistens alles", aber manchmal eben auch nicht.
 

icarus2

Top Contributor
Heisst, dass ich die Methode verwenden muss, wenn ich aus einem eigenen Thread heraus etwas verändern will oder?

Edit:

@Dragonfire: Der Algo ist bereits in einem eigenen Thread :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T invokeLater - Wann? AWT, Swing, JavaFX & SWT 29
B Swing Wann brauche ich repaint() ? AWT, Swing, JavaFX & SWT 1
J Swing Wann brauche ich @Override vor der paint()-Methode? AWT, Swing, JavaFX & SWT 1
R wann liefert getEditingRow was brauchbares ? AWT, Swing, JavaFX & SWT 2
K Swing Wann benötigt man JFrames? AWT, Swing, JavaFX & SWT 5
M SWT /Jface Wann einen ColumnLabelProvider benutzen? AWT, Swing, JavaFX & SWT 2
S validate(), invalidate(), repaint(),... Was kommt wann? AWT, Swing, JavaFX & SWT 5
B Swing JScrollPane - observen wann eine JScrollBar angezeigt wird? AWT, Swing, JavaFX & SWT 5
H AWT Wann ist paint() fertig? AWT, Swing, JavaFX & SWT 7
S Listener der mich informiert wann immer einer Liste ein Element hinzugefuegt wird? AWT, Swing, JavaFX & SWT 4
G Abfragen, wann JFrame dargestellt ist AWT, Swing, JavaFX & SWT 3
H Benachrichtigt werden wann ein Container repainted wird? AWT, Swing, JavaFX & SWT 5
I Wann genau startet der AWT-Thread? AWT, Swing, JavaFX & SWT 3
M AbstractAction, wann benutzen? AWT, Swing, JavaFX & SWT 2
T Fenster verschieben => Wann fertig? AWT, Swing, JavaFX & SWT 8
S Wann brauche ich die prepareRenderer() Methode ? AWT, Swing, JavaFX & SWT 2
M Wann AbstractTableModel und wann DefaultTableModel AWT, Swing, JavaFX & SWT 4
M wann wird paintComponent() aufgerufen AWT, Swing, JavaFX & SWT 4
E Problem mit JPanel - Wann wird size berechnet? AWT, Swing, JavaFX & SWT 5
A Swing: Wann ist eine Komponente gezeichnet? AWT, Swing, JavaFX & SWT 2
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
B Frame hängt sich auf trotz invokeLater AWT, Swing, JavaFX & SWT 1
Ollek Swing SwingUtilities invokeLater und invokeAndWait AWT, Swing, JavaFX & SWT 4
X Swing GUI-Änderungen mit invokeLater AWT, Swing, JavaFX & SWT 4
B Swing invokeLater nötig beim GUI erstellen? AWT, Swing, JavaFX & SWT 10
W Swing SwingUtilities.invokeLater wie konsequent anwenden? AWT, Swing, JavaFX & SWT 3
Dit_ SwingUtilities.invokeLater und Modaler JDialog AWT, Swing, JavaFX & SWT 11
Dit_ Frage zum Thema SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 5
H invokeLater Problem AWT, Swing, JavaFX & SWT 8
G Frage zu SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 16
E einfache Frage zu invokeLater() AWT, Swing, JavaFX & SWT 4
G Frage zu SwingUtilities.invokeLater AWT, Swing, JavaFX & SWT 9
G Schachtelung bei invokeLater AWT, Swing, JavaFX & SWT 4
B SwingUtilities.invokeLater() AWT, Swing, JavaFX & SWT 12
F invokeLater() vs synchronized(Object) AWT, Swing, JavaFX & SWT 5
L invokeLater in der main-Methode AWT, Swing, JavaFX & SWT 6
D GUI in JFrame mit invokeLater verändern AWT, Swing, JavaFX & SWT 5
M GUI in Verbindung mit invokeLater() bzw. invokeAndWait() AWT, Swing, JavaFX & SWT 2
S Welches Java Layout sollte ich verwenden? AWT, Swing, JavaFX & SWT 3
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
G Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
C Swing ImageIcon erstellen, skalieren und verwenden AWT, Swing, JavaFX & SWT 3
N JavaFX Unicode zeichnen in javafx Label verwenden AWT, Swing, JavaFX & SWT 2
O Soll ich einen JEditorPane verwenden ? AWT, Swing, JavaFX & SWT 5
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
M JavaFX MenuBar und Camera zusammen verwenden AWT, Swing, JavaFX & SWT 2
F Welchen Layoutmanager verwenden? AWT, Swing, JavaFX & SWT 2
X Swing OOP Vorlage verwenden und bearbeiten AWT, Swing, JavaFX & SWT 3
V JavaFX, Pane construktor von einer Klasse in der Main verwenden. AWT, Swing, JavaFX & SWT 4
P Swing welchen Layout Manager verwenden AWT, Swing, JavaFX & SWT 9
M AWT Java-Taschenrechner, wie Stack richtig verwenden? AWT, Swing, JavaFX & SWT 14
S JVM von Oracle/Sun soll für AWT/SWING Elemente die die Optimierungen der NVidia Treiber verwenden AWT, Swing, JavaFX & SWT 3
T JTree, Knoten mehrmals verwenden AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
B Anderen Layout-Manager verwenden AWT, Swing, JavaFX & SWT 17
T NullLayout verwenden, oder nicht? AWT, Swing, JavaFX & SWT 9
O Welche GUI verwenden? AWT, Swing, JavaFX & SWT 2
S JCalendar verwenden AWT, Swing, JavaFX & SWT 5
G GUI Elemente aus NetBeans verwenden AWT, Swing, JavaFX & SWT 8
H Swing JPanel Inhalt wird bei verwenden von JPopup gelöscht AWT, Swing, JavaFX & SWT 5
eskimo328 Java6 Methode in Java5 verwenden (memory leak JInternalFrame) AWT, Swing, JavaFX & SWT 4
I LookAndFeel Wie kann ich das Look and Feel "Blue Vista" verwenden? AWT, Swing, JavaFX & SWT 4
W Daten auf Textfeld in anderer Klasse verwenden AWT, Swing, JavaFX & SWT 4
R JOptionPane.YES_NO_CANCEL_OPTION im SaveDialog verwenden AWT, Swing, JavaFX & SWT 6
A Swingworker rückgabewert verwenden AWT, Swing, JavaFX & SWT 9
Y Swing JTabel verwenden ? AWT, Swing, JavaFX & SWT 11
Y JColorChooser verwenden AWT, Swing, JavaFX & SWT 8
D Objekt mit Button erstellen und mit anderem Button verwenden AWT, Swing, JavaFX & SWT 4
Luk10 NPE bei Verwenden von ActionListener! AWT, Swing, JavaFX & SWT 2
B Eingabe von JTextField verwenden AWT, Swing, JavaFX & SWT 10
A AWT Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 11
S Koordinaten aus Array verwenden zum zeichnen auf JPanel?! AWT, Swing, JavaFX & SWT 3
F jFileChooser verwenden AWT, Swing, JavaFX & SWT 4
S AWT Eigenen Cursor im Frame verwenden... AWT, Swing, JavaFX & SWT 5
Yuen TableLayout verwenden / Classpath AWT, Swing, JavaFX & SWT 3
I Texteingabe des Benutzers in der GUI verwenden AWT, Swing, JavaFX & SWT 5
S Componente mehrmals verwenden ? AWT, Swing, JavaFX & SWT 3
H paint verwenden AWT, Swing, JavaFX & SWT 3
H JFileChooser richtig verwenden AWT, Swing, JavaFX & SWT 3
F Externes Look & Feel für Swing wie importieren/verwenden AWT, Swing, JavaFX & SWT 3
H JFileChooser im Applet verwenden AWT, Swing, JavaFX & SWT 2
B In einer JTextArea unterschiedliche Schriftarten verwenden? AWT, Swing, JavaFX & SWT 3
P Umlaute in GUI verwenden AWT, Swing, JavaFX & SWT 5
M Bilder als Link verwenden? AWT, Swing, JavaFX & SWT 3
P Fehler beim Verwenden von swt.jar mit NetBeans AWT, Swing, JavaFX & SWT 2
M Windows file icons in Java verwenden AWT, Swing, JavaFX & SWT 2
S das selbe JLabel öffters verwenden AWT, Swing, JavaFX & SWT 6
R JProgressBar ohne Threads verwenden AWT, Swing, JavaFX & SWT 6
m@nu convertPoint richtig verwenden? AWT, Swing, JavaFX & SWT 2
A Klassenübergreifend MouseListener verwenden AWT, Swing, JavaFX & SWT 14
T JDialog als Optionen Fenster verwenden AWT, Swing, JavaFX & SWT 6
lin Welches Objekt für einen About-Dialog verwenden? AWT, Swing, JavaFX & SWT 2
G Bei JScrollpane statt Scrollbar eine Vorschau verwenden AWT, Swing, JavaFX & SWT 3
K JComboBox und JTextField zusammen verwenden AWT, Swing, JavaFX & SWT 3
D invalidate() - wie verwenden? AWT, Swing, JavaFX & SWT 2
A gif-Datei als Button verwenden AWT, Swing, JavaFX & SWT 4
G Listener mehrfach verwenden AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben