Entwicklung - Java - Eine einfache Uhr als Applet

Java: Eine einfache Uhr als Applet

rob (57)

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?

(155 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.290.346
Besucher heute: 96
Besucher gestern: 126
Max. Besucher/Tag: 1.578
Gerade online: 5
Max. online: 167
Seiten gesamt: 30.391.961
Aufrufe diese Seite: 2.641

Tag-Cloud

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