Entwicklung - Java - Eine einfache Uhr als Applet

Java: Eine einfache Uhr als Applet

rob (58)

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?

(160 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.326.340
Besucher heute: 122
Besucher gestern: 330
Max. Besucher/Tag: 1.578
Gerade online: 15
Max. online: 167
Seiten gesamt: 32.788.547
Aufrufe diese Seite: 133

Tag-Cloud

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