16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

E<strong>in</strong>e überschriebene update()-Metho<strong>de</strong> kann <strong>de</strong>n Flimmereffekt erheblich senken.<br />

3.3.3 „Multithread<strong>in</strong>g“-fähige Applets<br />

Mit Threads können <strong>in</strong> <strong>Java</strong> Applets so erstellt wer<strong>de</strong>n, daß alle o<strong>de</strong>r auch e<strong>in</strong>zelnen<br />

Co<strong>de</strong>teile <strong>in</strong> ihrem eigenen Thread laufen, ohne an<strong>de</strong>re Teile <strong>de</strong>s Systems zu<br />

bee<strong>in</strong>flussen. E<strong>in</strong> Applet kann im wesentlichen über vier Schritte<br />

Multithread<strong>in</strong>g-fähig gemacht wer<strong>de</strong>n:<br />

1. Erweitern <strong>de</strong>r Unterschrift <strong>de</strong>s Applets um implements Runnable<br />

2. H<strong>in</strong>zufügen e<strong>in</strong>er Instanzvariablen, die <strong>de</strong>n Thread <strong>de</strong>s Applet enthält<br />

3. Reduktion <strong>de</strong>r start()-Metho<strong>de</strong>, so daß sie außer <strong>de</strong>m Start <strong>de</strong>s Threads ke<strong>in</strong>e weiteren Threads<br />

enthält<br />

4. H<strong>in</strong>zufügen <strong>de</strong>r run()-Metho<strong>de</strong>, die <strong>de</strong>n eigentlichen Co<strong>de</strong> enthält, <strong>de</strong>n das Applet ausführen soll.<br />

Bsp.: E<strong>in</strong> Applet zur Anzeige von Datum und Uhrzeit, je<strong>de</strong> Sekun<strong>de</strong> wird<br />

aktualisiert 221 . Nach <strong>de</strong>n bisher vorliegen<strong>de</strong>n Erkenntnissen müßte das<br />

zugehörige Applet folgen<strong>de</strong> Gestalt haben:<br />

import java.awt.Graphics;<br />

import java.awt.Font;<br />

import java.util.Date;<br />

//<br />

// Top Level Deklaration <strong>de</strong>s Applets<br />

//<br />

public class DigitalUhr extends java.applet.Applet<br />

{<br />

// Variablen-Deklaration<br />

Font e<strong>in</strong>Font = new Font("TimesRoman",Font.BOLD,24);<br />

Date datum;<br />

// Eigene Metho<strong>de</strong>n<br />

// Metho<strong>de</strong>n, die ueberschrieben wer<strong>de</strong>n<br />

public void start()<br />

{<br />

// Ausfuehrung <strong>de</strong>s Applet<br />

while (true)<br />

{<br />

datum = new Date();<br />

repa<strong>in</strong>t(); // Aufruf <strong>de</strong>r repa<strong>in</strong>t()-Metho<strong>de</strong><br />

try {Thread.sleep(1000); } // Pause von 1000 Millisekun<strong>de</strong>n<br />

catch(InterruptedException e) {}<br />

}<br />

}<br />

// Optional, aber sehr wahrsche<strong>in</strong>lich – die Ausgabemetho<strong>de</strong><br />

public void pa<strong>in</strong>t(Graphics g)<br />

{<br />

g.setFont(e<strong>in</strong>Font); // Setzen <strong>de</strong>s aktuellen Font<br />

g.drawStr<strong>in</strong>g(datum.toStr<strong>in</strong>g(),10,50); // Ausgabe Datum<br />

// Da pa<strong>in</strong>t() wie<strong>de</strong>rholt mit jeweils <strong>de</strong>m aktuellen Wert von<br />

// „datum“ aufgerufen wird, wird die Zeichenkette je<strong>de</strong> Sekun<strong>de</strong><br />

//zur Ausgabe <strong>de</strong>s neuen Datums aufgerufen<br />

}<br />

}<br />

In <strong>de</strong>r start()-Metho<strong>de</strong> nimmt die while-Schleife alle Systemressourcen für<br />

sich <strong>in</strong> Anspruch (e<strong>in</strong>schl. <strong>de</strong>r Anzeige am Bildschirm). Deshalb funktioniert die<br />

221 vgl. pr42001<br />

240

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!