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 />

digitale Uhr nicht. Außer<strong>de</strong>m kann das Applet nicht gestoppt wer<strong>de</strong>n, da die<br />

stop()-Metho<strong>de</strong> nicht aufgerufen wer<strong>de</strong>n kann. Die Lösung <strong>de</strong>s Problems liegt<br />

im erneuten Schreiben <strong>de</strong>s Applets mit Threads. Das Applet muß dazu mit <strong>de</strong>n<br />

vorgegebenen vier Arbeitsschritten erweitert wer<strong>de</strong>n.<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 DigitalThreadUhr extends java.applet.Applet<br />

implements Runnable<br />

{<br />

// Variablen-Deklaration<br />

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

Date datum;<br />

Thread fa<strong>de</strong>n;<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 />

if (fa<strong>de</strong>n == null)<br />

{<br />

fa<strong>de</strong>n = new Thread(this);<br />

fa<strong>de</strong>n.start();<br />

}<br />

}<br />

public void stop()<br />

{<br />

if (fa<strong>de</strong>n != null)<br />

{<br />

fa<strong>de</strong>n.stop();<br />

fa<strong>de</strong>n = null;<br />

}<br />

}<br />

public void run()<br />

{<br />

// Ausfuehrung <strong>de</strong>s Applet, hier f<strong>in</strong><strong>de</strong>t die Animation statt<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 />

Das folgen<strong>de</strong> Gerüst umfaßt e<strong>in</strong> Muster für „multithread<strong>in</strong>g“-fähige Applets:<br />

// Name <strong>de</strong>r Klasse:<br />

// Beschreibung:<br />

241

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!