Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


8.7.3

Timer


Nicht zu verwechseln mit java.util.Timer ist diese nützliche Klasse, die es ermöglicht, in festen Abständen Dinge starten zu lassen.

Möchte man beispielsweise eine Animation ablaufen lassen, so kann man dies leicht mit folgenden Code erreichen:

  // Jede Sekunde (1000 Millisekunden) ein neues Bild
  int delay = 1000;
  Timer t = new Timer(delay, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
      // Neues Bild zeichnen
    }
  });
  t.start();

Über die Methoden start(), stop() und restart() kann man den Ablauf steuern. Die Methode setInitialDelay(int initialDelay) ermöglicht es überdies, die Zeit bis zwischen dem start()-Methodenaufruf und dem ersten ActionEvent anzugeben.

Damit kann man beispielsweise einen Tooltip steuern:

  final Timer toolTipTimer = new Timer (0, 
    new ActionListener() {
      public void actionPerformed(ActionEvent e) {
        // Tooltip anzeigen
      }
    });
  // Nach einer Sekunde soll der Tooltip angezeigt werden
  toolTipTimer.setInitialDelay(1000);
  // Der Tooltip soll nur einmal erscheinen und 
  // nicht immer wieder
  toolTipTimer.setRepeats(false);

  component.addMouseListener(new MouseAdapter() {
    public void mouseMoved(MouseEvent e) {
      // Wenn sich der Mauszeiger bewegt,
      // dann wieder warten, bis eine
      // Sekunde lang der Mauszeiger
      // nicht bewegt wird
      toolTipTimer.restart();
    }
    public void mouseExited(MouseEvent e) {
      // Wenn der Benutzer die Komponente
      // verlässt, soll kein Tooltip
      // mehr angezeigt werden
      toolTipTimer.stop();
    }
  });

Wenn der Benutzer die Maus bewegt, wird der Timer kontinuierlich neu gestartet - es wird nie die Initialzeit von einer Sekunde erreicht. Bleibt der Benutzer allerdings mit der Maus stehen und dauert dies eine Sekunde, wird die actionPerformed(ActionEvent e)-Methode aufgerufen. Bewegt der Benutzer die Maus dann weiter, beginnt das Spiel von neuem. Damit der Tooltip nur angezeigt wird, wenn der Mauszeiger in der Komponente ist, deaktivieren wir den Timer, wenn die Maus die Komponente verlässt.


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.