9.27 Zeitliches Ausführen mit dem javax.swing.Timer
Der javax.swing.Timer ist eine einfache Variante von java.util.Timer zum Ausführen von Programmcode eines Action-Listeners im AWT-Event-Thread. Im Konstruktor des Timer-Objekts wird für Intervalle die Verzögerungszeit eingestellt – wie im folgenden Beispiel, in dem jede Sekunde auf einer Komponente p ein repaint(), also eine Neudarstellung, motiviert:
javax.swing.Timer t = new javax.swing.Timer( 1000, new ActionListener() {
public void actionPerformed( ActionEvent e ) {
p.repaint();
}
} );
t.start(); // t.stop() beendet.
Ein java.util.Timer-Timer hat mehrere Konstruktoren, doch beim javax.swing.Timer gibt es nur einen Konstruktur. Anpassungen vom Swing-Timer werden über Methoden realisiert, die Zustände setzen, etwa ob der Timer mehrmals ausgefüht werden soll.
class java.awt.Toolkit |
- Timer(int delay, ActionListener listener)
Erzeugt einen Timer, der nach einer gewissen Verzögerung (oder optional mit Wiederholung) den listener abarbeitet. - void start()
Startet den Timer. - void stop()
Stoppt den Timer. - void setRepeats(boolean flat)
Ist flag false, wird der Listener nur einmal abgearbeitet. - void setDelay(int delay)
Setzt die Verzögerung neu. - void addActionListener(ActionListener listener)
Fügt einen neuen Listener hinzu, den der Timer abarbeitet. - void restart()
Setzt den Timer in den Startzustand zurück und löscht alle noch hängenden Ereignisse.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.