Ich habe ein Nachrichtenlabel und eine Senden-Schaltfläche. Die Senden-Schaltfläche wird mehrmals gedrückt, und die Aktion für die einzelnen Druckvorgänge kann bis zu einer Minute dauern.
Wenn die Taste gedrückt wird, möchte ich die Nachricht auf leer setzen, und nachdem die Aufgabe abgeschlossen ist, möchte ich die Nachricht auf "Abgeschlossen" setzen.
%Vor% Ist es möglich, diese Nachrichtenbeschriftung zu aktualisieren, bevor die submitActionPerformed()
-Methode ausgeführt wird (oder in der Methode), aber nachdem auf die Schaltfläche geklickt wurde?
Ja, Sie können dies mit SwingWorker
thread tun, alle pre submitActionPerformed()
-Aktivitäten tun, wie das Label aktualisieren, in der execute()
-Methode von currentThread
und doTheTask()
als Hintergrund-Job mit worker% aufrufen Code%.
Ich empfehle Ihnen, diese Dokumentation als Referenz für SwingWorker Thread
Obwohl das Swing-Concurrency-Lernprogramm bereits einige sehr gute Beispiele zum Umgang mit diesem Thema enthält mit Nebenläufigkeit in Swing, finden Sie unten ein Beispiel, das
SwingWorker
aktualisiert wird
hat eine Bezeichnung, die nach Abschluss von SwingWorker
aktualisiert wird
Tags und Links java swing concurrency event-dispatch-thread