Knowledge Base Nr: 00060 Laufschrift_applet.java - http://www.swe-kaiser.de

Java: Java-Applet scrollt Text

  
// Parameter : TEXT
// Der Lauftext wird durch das Java - Fenster horizontal
// gescrollt.

import java.applet.*;
import java.awt.*;

public class k_Laufschrift extends java.applet.Applet
implements Runnable
{
String text;
boolean runflag;
Thread Rolle = null;

public void init ()
{
// Parameter holen, Fenster bestimmen
text = getParameter ("text");
if (text == null)
System.out.println ("Kein Text angegeben");
resize (300, 30);
}

int size = 24;
Font font = new Font("Dialog", Font.BOLD, size);

public void paint (Graphics g)
{
g.setFont(font);
g.setColor(Color.red);

// Fenster löschen und Text ausgeben
g.clearRect (0, 0, 300, 30);
g.drawString (text, 0, 25);
}

public void start ()
{
// Falls noch kein Thread existiert, einen instanziieren.
if (Rolle == null)
Rolle = new Thread (this, "Laufschrift");

// runflag bestimmt, ob der Thread noch weiterbesteht.
// Beim start soll er bestehen, also wird runflag zu true
// gesetzt.
runflag = true;
// Hier wird der Thread gestartet.
Rolle.start ();
}

public void stop ()
{
// Den Thread anhalten
runflag = false;
// ...und für die Freigabe des Speichers sorgen...
Rolle = null;
}

//
// run () ist die Methode, die das Programm des Threads
// enthält. run () wird beim Aufruf von Thread.start ()
// gestartet und bei Thread.stop () angehalten. Sonst läuft
// sie im Hintergrund, bis sie sich von selbst beendet.
//
public void run ()
{
long d = 0;
// Solange runflag gesetzt ist, wird der Text gerollt
while (runflag)
{
// Den Text mit Methoden der String - Klasse um einen
// Buchstaben weiter rollen
text = text.concat (text.substring (0, 1));
text = text.substring (1);
// ...und für n Millisekunden Pause sorgen...
try {Rolle.sleep (100);} catch (Exception e) {};
// ...und Neuzeichnen
repaint ();
}
}
}