Konrad-Adenauer-Gymnasium Langenfeld

Informatik Grundkurs Q1

Digitaluhr

Jetzt wollen wir eine einfache Digitaluhr aufbauen.

Das Grundgerüst ist ihre einfache Thread-Animation, die sie aus JumpingBall2 bereits kennen.

Damit wir auf die Datumsfunktionen zugreifen können, benötigen wir eine weitere Importanweisung:

import java.util.*;

Dann benötigen wir jeweils ein Font- und ein GregorianCalendar-Objekt, sowie ein paar Hilfsvariablen:

private Font FSchriftart = new Font("sansSerif",Font.BOLD,24);
private GregorianCalendar jetzt;
private String Uhrzeit = "";
private String Minute = "";
private int Minutenwert = 0;
private String Sekunde = "";
private int Sekundenwert = 0;

In der paint-Methode wird dann erst die Schriftart gesetzt und dann das Datum und die Uhrzeit ausgegeben:

public void paint(Graphics g)
{
g.setFont(FSchriftart);
g.drawString(Uhrzeit,40,30);
}

Die run-Methode holt nun jeweils das aktuelle Datum über den Konstuktor des GregorianCalendar-Objekts, wandelt die Werte in einen String um, zeichnet das Applet neu und lässt dann den Thread 1000 ms pausieren:

public void run()
{
while (true)
{
jetzt = new GregorianCalendar();
Sekundenwert=jetzt.get(Calendar.SECOND);
Minutenwert=jetzt.get(Calendar.MINUTE);
if (Sekundenwert<10)
Sekunde="0"+Sekundenwert;
else
Sekunde=""+Sekundenwert;
if (Minutenwert<10)
Minute="0"+Minutenwert;
else
Minute=""+Minutenwert;
Uhrzeit=""+jetzt.get(Calendar.HOUR_OF_DAY)+":"+Minute+":"+Sekunde;
repaint();
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
}
}
}

Die get-Methode auf bestimmte Calendar-Objekte liefert dabei die Stunden, Minuten, Sekunden als int-Werte. Damit bei Minuten oder Sekundenwerten unter 10 nicht die Anzeige in der Form 5 statt 05 erfolgt, muss in den if-Anweisungen dieses abgefangen werden.

Kein Java-Browser


© Ralph-Erich Hildebrandt, 30. Juni 2004