Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Java Swing Gui Update » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Java Swing Gui Update
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Java Swing Gui Update Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo,

ich bin derzeit bei einem Projekt beschäftigt bei welchem ich anhand eines Events (mit einem Listener) eine Swing Gui updaten muss. Ich habe es bereits mit revalidate(), repaint(), SwingUtilities.invokeLater und sogar einem eigenen Thread versucht. Jedoch bewegt sich die Progressbar und die Label erst wenn der Prozess durchgelaufen ist unglücklich Die letzte Version meines Codes sieht so aus:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
@Override
public void backupChanged(){
         SwingUtilities.invokeLater(() -> {
               jPBProgress.setMaximum(backupManager.getCount());
               jPBProgress.setValue(backupManager.getCurrent());
               jLCount.setText(backupManager.getCurrent() + " of " + backupManager.getCount());
               jLCurrent.setText(backupManager.getCurrentFile().getName());
               getRootPane().revalidate();
         });     
}


__________________
Why do Java developers wear glasses? Because they can't C#
23.05.2015 23:10 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du brauchst verschiedene Threads, wenn die Benutzeröberfläche während der Arbeit reagieren soll.
Schau mal hier vorbei: oracle.com

__________________
Syntax Highlighting fürs Board (Link)
24.05.2015 06:16 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe mir das von Oracle mal angesehen. Muss ich zwingend den PropertyListener bzw. den SwingWorker verwenden, damit ich das entsprechende Update machen kann? Ich habe eben das hier implementiert. Also eigenen Listener usw. - aufgerufen wird es laut Debugging auch.

Gruß,
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
24.05.2015 11:34 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das die Funktion aufgerufen wird, heißt nicht, dass die Oberfläche auch neu gezeichnet wird. Und selbst wenn dir das gelingt, wird die Oberfläche bei nur einem Thread zwischen den Änderungen an der Progressbar nicht reagieren.

Du kannst es mit Events machen, aber die eigentliche Berechnung darf nicht im selben Thread erfolgen, wie das UI. Dazu kannst du von Thread erben oder Runnable implementieren und diese Klasse dann von der UI Klasse aufrufen.

Im Anhang ist ein Programm, das mit Runnable und Observer arbeitet, war eine Übungsaufgabe im letzten Semester.

Dateianhang:
zip Runnable.zip (37,08 KB, 344 mal heruntergeladen)


__________________
Syntax Highlighting fürs Board (Link)
24.05.2015 11:50 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
InformaTiger InformaTiger ist männlich
Tripel-As


images/avatars/avatar-77.gif

Dabei seit: 19.02.2013
Beiträge: 228
Herkunft: Südtirol

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ohh man, bin ich doof. Zunge raus Ich habe die klarerweise die falsche Aktivität im eigenen Thread gestartet: also das UI Update war im eigenen Thread und die Berechnung fand im UI Thread statt. War jetzt auch nicht mehr wirklich schwer - musste nur einen Thread um die Berechnung packen. Danke, ist klar jetzt.

Mfg
InformaTiger

__________________
Why do Java developers wear glasses? Because they can't C#
26.05.2015 20:21 InformaTiger ist offline Beiträge von InformaTiger suchen Nehmen Sie InformaTiger in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Java Swing Gui Update