~Java4Beginners~
~Java4Beginners~

Timerpanel

Was immer wieder benötigt werden kann, ist ein Timer. Sei es, um einen Countdown anzuzeigen, oder auch, um im Hintergrund einfach eine Zeitfunktion am Laufen zu halten.
Java stellt hierfür die Klasse Timer zur Verfügung. In meinem Beispiel erstelle ich ein einfaches Fenster, in welchem ein Timer aufwärts bis zum Endzeitpunkt von 2 Stunden läuft.
Es gibt hierbei einige Sachen zu beachten.
  • Die Klasse Timer arbeitet mit Millisekunden.
  • Wie gestaltet ich die Anzeige
  • Wie lange lasse ich den Timer laufen.
  • .....

Codeausschnitt


            timer = new javax.swing.Timer(1000, (ActionEvent e1) -> {
                counterValue++;
                if (counterValue == 60)
                {
                    counterValue = 0;
                    minute++;
                    if (minute == 60)
                    {
                        minute = 0;
                        stunde++;
                    }
                }
                sekunde = (int)counterValue;
                lbl_timer.setText(stunde+":"+df.format(minute)+":"+df.format(sekunde));
                if(counterValue == 7200)
                {
                    lbl_timer.setOpaque(true);
                    lbl_timer.setBackground(Color.red);
                    lbl_timer.setText("2 Stunden vorbei");
                    timer.stop();
                }
            });
            timer.start();    
Meine Timeranzeige läuft über das hochzählen der einzelnen Ticks. Dem Timer-Objekt werden im Konstruktor 2 Werte übergeben.
  • Die Tickdauer (In meinem Fall 1000ms, also 1 Sekunde)
  • Das Eventhandling was bei einem Tick passieren soll.
Die einzelnen Ticks werden in der Variable counterValue hochgezählt. Mit Countervalue wird auch die Austrittsbedingung definiert. Wenn 7200 Ticks passiert sind (Entspricht 2 Stunden --- 2 Stunden = 120 Minuten = 7200 Sekunden), dann wird mein Label rot und es erfolgt eine Ausgabe. Der Timer wird anschliessend angehalten.
In anderen Anwendungen kann diese Austrittsbedingung darin bestehen, dass eine Bearbeitung eingestellt wird (Aufruf eines modalen Dialogfensters, bei Bestättigung wird das aktuelle Anwendungsfenster geschlossen, oder mit einem anderen Container ersetzt.)

Die Anzeige des Timerfensters wurde auf die obere Linke Bildschirmecke gesetzt.
nach oben Java4Beginners -- Seitenversion 1.01 -- Stand: 2017-05-15