Java Swing Gui Update |
23.05.2015, 23:10 | Auf diesen Beitrag antworten » | |||||
InformaTiger | Java Swing Gui Update 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 Die letzte Version meines Codes sieht so aus:
|
|||||
|
||||||
24.05.2015, 06:16 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | Du brauchst verschiedene Threads, wenn die Benutzeröberfläche während der Arbeit reagieren soll. Schau mal hier vorbei: oracle.com |
|||||
24.05.2015, 11:34 | Auf diesen Beitrag antworten » | |||||
InformaTiger | 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 |
|||||
24.05.2015, 11:50 | Auf diesen Beitrag antworten » | |||||
eulerscheZahl | 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. |
|||||
Anzeige | ||||||
|
||||||
26.05.2015, 20:21 | Auf diesen Beitrag antworten » | |||||
InformaTiger | Ohh man, bin ich doof. 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 |
|
Verwandte Themen
Die Beliebtesten » |
Die Größten » |
|
Die Neuesten » |
|