Swing GUI aktualisiert sich nicht

peez

Bekanntes Mitglied
Bin gerade dabei ein kleines Tool zu schreiben, das Dateien transferiert.
Der Transfer geschieht in einem HintergrundThread.

Auf der GUI habe ich einige Komponenten, die Observer implementieren u. vom HintergrundThread benachrichtigt werden, wenn sich der Fortschritt ändert.

Leider aktualisiert sich da nix :-( Habe auch ein JMenu und zwei Buttons, die sich alle nicht klicken lassen.

Nur wenn ich das Fenster verschiebe, werden die Komponenten einmal auf den letzten Stand aktualisiert u. bleiben dann wieder stehen...

Woran kann sowas liegen? Habe mittlerweile alle .invokeLater() rausgenommen, damit nichts im Event Dispatch Thread läuft...
 
Ja wenn dein HintergrundThread die GUI nicht im EDT aktualsiert wirst du wohl auch nichts sehen...
 
Deshalb habe ich die invokeLater()'s ja schon versucht rauszunehmen. Vorher waren die Updates da drin aber die GUI hat sich trotzdem nicht bewegt...
 
Hatte gehofft, dass hier jemand nen Erfahrungswert hat. Der Code ist ziemlich umfangreich u. ich wüsste auf Anhieb nicht, welche relevanten Teile ich hier posten sollte...
 
Mach ein KSKB...
Schau dir den SwingWorker an...
LEs drch was invokeLater genau macht...
Es gibt soviele Fehlerquellen...
 
Ein KSKB hatte ich mir schon gemacht u. da hats leider funktioniert :bahnhof:

Naja jetzt habe ich es alles umgebaut u. SwingWorker verwendet, statt selbst Threads zu starten u. jetzt gehts.

Das mit den nicht drückbaren Buttons scheint deswegen gewesen zu sein, weil ich zur Anzeige eine JList mit einem entspr. Renderer verwendet habe, der neben Progressbar etc. einen Button zeichnet. Mir ist zwar noch nicht ganz klar warum aber laut google scheinen Buttons in einer JList grundsätzlich nicht zu gehen.
Jetzt ist es keine JList mehr sondern ein JPanel, wo ich zwar noch mit dem Layout kämpfe, aber wenigstens schonmal Update und Buttons funktionieren 😉
 

Zurück
Oben