Swing - Etikett aktualisieren

8

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?

    
Berek Bryan 18.01.2012, 20:10
quelle

2 Antworten

10

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

    
Rajesh Pantula 18.01.2012, 20:19
quelle
13

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

  • enthält ein Kontrollkästchen, um zu bestätigen, dass die Benutzeroberfläche noch immer aktiv ist
  • hat einen Fortschrittsbalken, der von SwingWorker aktualisiert wird
  • hat eine Bezeichnung, die nach Abschluss von SwingWorker aktualisiert wird

    %Vor%
Robin 18.01.2012 21:19
quelle