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?

(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.398.957
Besucher heute: 46
Besucher gestern: 1.145
Max. Besucher/Tag: 2.919
Gerade online: 10
Max. online: 201
Seiten gesamt: 37.007.718
Aufrufe diese Seite: 145

Tag-Cloud

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