Timer

Hallo!
Ich suche verzweifelt ein gutes Tutorial bzw. Beispielcode für das javax.management.timer-API. Ich will damit eine Uhr programmieren, die jede Sekunde um 1 herunterzählt (geht das auch ohne das Timer-Interface, aber möglichst ohne wait(…)?)

Könnt ihr mir helfen?

Danke im Voraus, Hans

Ich suche verzweifelt ein gutes Tutorial bzw. Beispielcode für
das javax.management.timer-API. Ich will damit eine Uhr
programmieren, die jede Sekunde um 1 herunterzählt (geht das
auch ohne das Timer-Interface, aber möglichst ohne wait(…)?)

Wieso nimmst du denn dazu die Management-API her? Einen Timer gibts doch bereits ganz normal im java.util-Paket.

Du erstellst einfach einen Timer (Klasse java.util.Timer). Dann noch einen TimerTask (dort musst du die run()-Methode implementieren) und dann startest du den Timer mit der schedule()-Methode.
Dann wir die run()-Methode so oft und in solchen Intervallen ausgeführt, wie du es angegeben hast.

Beispiel-Code das Uhrzeit anzeigt:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JFrame;
import javax.swing.JLabel;


public class TimerTest extends JFrame {

 // Label zur Anzeige der aktuellen Uhrzeit im Fenster
 private JLabel label = new JLabel();

 public TimerTest() {
 // Fenster initialisieren
 this.setSize(140,80);
 this.setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE);
 this.add(label);
 }

 public void startTimer() {
 // Erstelle den Timer 
 Timer t = new Timer("Timer-Thread", true);
 // Erstelle den Timer-Task als innere Klasse
 TimerTask task = new TimerTask() {
 public void run() {
 // Dies wird jedesmal ausgefuehrt, wenn der Timer anschlaegt:
 // Wir schreiben die aktuelle Uhrzeit ins Fenster
 DateFormat format = new SimpleDateFormat("hh:mm:ss");
 setText(format.format(new Date()));
 }
 };
 // Starte den Timer sofort mit Intervall 1000ms
 t.schedule(task, 0, 1000); 
 }


 public void setText(String text) {
 // Setzt den Text im Fenster und gibt ihn auch auf der Konsole aus
 label.setText(text);
 System.out.println(text);
 this.validate();
 }


 public static void main(String[] argv) {
 // Main-Methode: Erstellt Fenster und startet Timer
 TimerTest timerTest = new TimerTest();
 timerTest.setVisible(true);
 timerTest.startTimer();
 }

}

Hi,
Danke für die Antowrt, genau das hab ich gesucht. Ich wusste bisher nicht, dass java.util.Timer eigentlich dasselbe macht wie javax.management.Timer

mfg, Hans