Entwicklung - Java - Eine einfache Uhr als Applet

Java: Eine einfache Uhr als Applet

rob (59)

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?

(161 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.470.351
Besucher heute: 277
Besucher gestern: 780
Max. Besucher/Tag: 2.919
Gerade online: 20
Max. online: 314
Seiten gesamt: 39.132.617
Aufrufe diese Seite: 123

Tag-Cloud

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