Entwicklung - Java - Eine einfache Uhr als Applet

Java: Eine einfache Uhr als Applet

rob (55)

rob

12.08.2002 00:42

Vinn

  • 323 Postings, noch 27 bis zum nächsten Level (350)

Postings: 323

Eine einfache Uhr als Applet

Montag, 02. September 2002 16:28

  • 0.0/6 Votes: 0
0.0/6 Votes: 0
Dieses Beispiel zeigt wie man mit Java eine "flimmerfreie" Zeitdarstellung erreichen kann.

Bemerkung: Nur die wichtigsten Teile des Quellcodes werden kurz angesprochen.
Die Idee bei dem Applet ist die, ein Thread im Hintergrund ablaufen zu lassen, der alle 500 Millisekunden die Zeit aktualisiert und diese mittels doublebuffering auf den Bildschirm schreibt. Das Doublebuffering verhindert ein Flackern der Ausgabe.
Da wir einen Thread benutzen, muß unsere Klasse die Schnittstelle Runnable implementieren und die Methode run() überschreiben.

public class Uhr extends Applet implements Runnable {

[...]


public void run() {
weiter = true;
while(weiter) {
zeit = new Date();
stunden = nullCheck(zeit.getHours());
minuten = nullCheck(zeit.getMinutes());
sekunden = nullCheck(zeit.getSeconds());
aktuelleZeit = stunden+":"+minuten+":"+sekunden;
repaint();
try {
thread.sleep(500);
} catch(InterruptedException e) {}
}
}

[...]

}

Der nächste wichtige Teil ist die paint()-Methode unseres Applets. Hier wird die aktuelle Zeit mit der jeweiligen Textfarbe ersteinmal in einen Puffer geschrieben und dieser wird danach mittels drawImage() auf den Bildschirm geschrieben.

public void paint(Graphics g) {
if (offScreenBuffer==null ||
(! (offScreenBuffer.getWidth(this) == this.size().width &&
offScreenBuffer.getHeight(this) == this.size().height))) {
offScreenBuffer = this.createImage(size().width, size().height);
}
gr = offScreenBuffer.getGraphics();

gr.clearRect(0,0,this.size().width,this.size().width);
gr.setColor(textFarbe);
gr.drawString(aktuelleZeit, 5, 13);
g.drawImage(offScreenBuffer,0,0,this);
}

Da durch die repaint()-Methode die update()-Methode aufgerufen wird und diese wiederum die paint()-Methode aufruft, wird die Uhrzeit ständig aktualisiert.

Bookmark setzen!:Zu Google Bookmark hinzufügen.Zu bloglines hinzufügen.Zu Newsgator hinzufügen.Zu FURL hinzufügen.Zu DIGG hinzufügen.Zu Webnews hinzufügen.Zu Netscape hinzufügen.Zu Yahoo MyWeb hinzufügen.Zu spurl.net hinzufügen.Zu diigo hinzufügen.Zu Newsvine hinzufügen.Zu del.icio.us hinzufügen.Zu SIMPIFY hinzufügen.Zu Mister Wong hinzufügen.Zu Linkarena hinzufügen.Zu isio.de hinzufügen.Zu Oneview hinzufügen.Zu yigg.de hinzufügen.Zu reddit hinzufügen.Zu StumbleUpon hinzufügen.Zu Slashdot hinzufügen.Zu Blinklist hinzufügen.Zu Technorati hinzufügen.Zu Blogmarks hinzufügen.Zu Blinkbits hinzufügen.Zu ma.gnolia hinzufügen.Zu smarking.com hinzufügen.Zu Netvouz hinzufügen.Zu co.mments hinzufügen.Zu Connotea hinzufügen.Zu de.lirio.us hinzufügen.

Specials

Bytefresser Specials: Anno 1404

Umfrage

Welches ist Dein Lieblings-Anno?

(144 Stimmen)

1. Ganz klar: Anno 1800!
2. Anno 2205
3. Anno 2070
4. Anno 1404
5. Anno 1701
6. Anno 1503
7. Anno 1602
8. Anno Online

Benutzer-Counter

Besucher gesamt: 1.225.620
Besucher heute: 52
Besucher gestern: 62
Max. Besucher/Tag: 900
Gerade online: 4
Max. online: 77
Seiten gesamt: 26.189.836
Aufrufe diese Seite: 2.335

Tag-Cloud

  applet     bookmark     postings     -methode     runnable     doublebuffering     bytefresser     puffer     schnittstelle     bemerkung     ausgabe     textfarbe     thread     klasse     flackern     bildschirm     graphics     uhrzeit     september     hintergrund     quellcodes     programmierung     entwicklung     millisekunden     webdesign     beispiel     zeitdarstellung     montag     dieses     level