invokeLate bei änderung im TableModel?

Status
Nicht offen für weitere Antworten.

dotlens

Top Contributor
hi!

also swing und awt sind ja nicht Thread sicher und desshalb soll man invokeLater() nehmen um vom Rechner-Thread etwas von der GUI zu ändern.
Ich ändere aber nicht direkt etwas an der GUI sondern nur im TableModel, muss ich da auch invokeLater() benutzen?

Es funktionierte bisher ohne Probleme als ich es ohne invokeLater() gemacht hab, aber ich will mir sicher sein.
Kann mir gut vorstellen, dass das TableModel die Informationen schon korrekt an die view weitergibt...

danke und gruss
 
Wenn ich nicht irre, so verhält sich das bei dem TableModel ein wenig anders: Wenn Die Daten geändert wurden, so muss ein Event geworfen werden, welches registrierte Listener dazu anregt die Tabelle entsprechend darzustellen...

vlg. auch z.B. AbstractTableModel#fireXXX-Methoden
 
mir ist klar, dass das Model die View mit den fire... methoden benachrichtigt.
vieleicht hab ich mich nicht ganz klar ausgedrückt.

wenn ich von meinem Thread (welcher die rechnungen übernimmt) etwas auf der GUI ändern will muss ich invokeLater() benutzen da AWT/swin nicht Threadsicher sind.
mir ist aber nicht klar ob ich Änderungen im Table model auch mit invokeLater() vornehmen muss, da ja das tableModel eigentlich nur Daten enthält und selbst dafür sorgt, dass sie angezeigt werden.

Vielecht mache ich mir auch bloss zuviele Gedanken, denn eigentlich funktioniert das Ganze schon.
 
Nein. invokeLater ist nicht notwendig, weil Du ja nur das Model änderst.
Die GUI aktualisiert sich durch die Events; diese werden in der EventQueue in der Folge ihres "Eintreffens" sequenzialisiert.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben