//Importieren vordefinierter Klassenbibliotheken aus Java
import java.applet.*;
import java.awt.*;
import java.util.Random;
/*
*
* SmallTicker
*
*/
/*
* Name der Klasse wird festgelegt; extends legt fest, dass s�mtliche
* Eigenschaften von Applet �bernommen werden sollen
* Runnable wird impletiert, dadurch k�nnen Threads verwendet werden
*/
public class SmallTicker extends Applet implements Runnable
{
/* Die "Schubladen" (Variablen) x, y und width vom Typ Integer werden
* eingerichtet und mit den Werten 0 gef�llt.
*/
int x = 0;
int y = 0;
int width = 0;
/* Es wird ein Thread-Objekt namnes my_treat erstellt und mit dem Wert
* null gef�llt.
*/
Thread my_thread = null;
/* Die Methode init ermittelt sowohl die Breite als auch die H�he des Fensters
* Dies geschieht �ber die Funktion size.
*/
public void init()
{
/* Die "Schublade" (Variable) x wird mit den Werten gef�llt, die die
* Fensterbreite festlegen
*/
x = size().width;
/* Die "Schublade" (Variable) y wird mit den Werten gef�llt, die die
* Fensterh�he festlegen
*/
y = size().height / 2;
/* Der "Schublade" (Variable) width wird derselbe Wert wie die Variable x
* �bergeben
*/
width = x;
}
/* Die Methode start wird aufgerufen. Ein neues thread-Objekt wird erzeugt, dass sich auf die Klasse
* SmallTicker bezieht. sobald die Methode start fertig ist, wird die Methode run aufgerufen
*/
public void start()
{
my_thread = new Thread(this);
my_thread.start();
}
/* Die Methode run wird mit Hilfe einer while-Schleife aufgerufen.
* Diese ist eine Endlosschleife und veranlasst zus�tzlich, dass der Text als
* Lauftext ausgegeben wird.
*/
public void run()
{
while(true)
{
/* Eine st�ndige Aktualisierung des Fensters wird durch die Funktion repaint erzeugt */
repaint();
/* Von dem Inhalt der "Schublade" (Variable) x wird der Wert 10 abgezogen */
x -= 10;
/* Der Inhalt der "Schublade" (Variable) x wird, sobald ihr Inhalt kleiner als 0 ist, wieder
* in den Ausgangszustand(Inhalt der Variablen width) zur�ckgesetzt. Dies geschieht mit Hilfe
* einer if-Bedingung
* Mit Thread.sleep(100) wird der Thread erst nach 100 Milisekunden erneut aufgerufen,
* er pausiert zwischen zwei ausf�hrungen also immer f�r 100 Milisekunden.
*/
if(x <0) x=width; try {Thread.sleep(100); }
/* Sobald sleep wieder "erwacht" gibt sie eine Ausnahmebehandlung vom Typ InterruptException aus.
* Auf try folg catch, wodurch festgelegt wird, wie mit der Ausnahme verfahren werden soll.
* In diesem Fall wird die Ausnahme aufgefangen und dann einfach ignoriert.
*/
catch(InterruptedException e) { } } }
/* Aus der Gruppe Graphics wird ein Objekt, das alle Eigenschaften haben soll,
* die in der Bibliothek unter Graphics gesichert sind, definiert werden. Es erh�lt den Namen g
*/
public void paint(Graphics g)
{
/* Es werden die Stringvariablen schriftart und text, und die Integer Variable schriftgroesse definiert.
* Ihnen wird kein Inhalt �bergeben
*/
String schriftart;
String text;
int schriftgroesse;
/* Die String Variablen schriftgroesse wird mit dem Parameter aus der HTML-Datei gef�llt
* w�hrend die Integer Variablen konvertiert werden
*/
schriftart = getParameter("schriftart");
text = getParameter("text");
schriftgroesse = Integer.parseInt(getParameter("schriftgroesse"));
/* Es werden die Integer Variablen br,bg,bb definiert.
* Ihnen wird kein Inhalt �bergeben
*/
int br;
int bg;
int bb;
/* Die String Variablen werden mit dem Parameter aus der HTML-Datei gef�llt
* und in Integer Variablen konvertiert
*/
br = Integer.parseInt(getParameter("br"));
bg = Integer.parseInt(getParameter("bg"));
bb = Integer.parseInt(getParameter("bb"));
/* Es werden die Integer Variablen sr,sg,sb defniniert.
* Ihnen wird kein Inhalt �bergeben
*/
int sr;
int sg;
int sb;
/* Die String Variablen werden mit dem Parameter aus der HTML-Datei gef�llt
* und in Integer Variablen konvertiert
*/
sr = Integer.parseInt(getParameter("sr"));
sg = Integer.parseInt(getParameter("sg"));
sb = Integer.parseInt(getParameter("sb"));
/* In einem neuen Objekt f (aus der Klasse Font) wird eine neue Schriftart definiert
* und dieses Objektf steht der gesamten Klasse zur Verf�gung
*/
Font f = new Font (schriftart,Font.BOLD,schriftgroesse);
/* Aus der HTML-Datei wird eine neue Farbe definiert und mit dem Namen b versehen
*/
Color b = new Color(br,bg,bb);
/* Aus der HTML-Datei wird eine neue Farbe definiert und mit dem Namen s versehen
*/
Color s = new Color(sr,sg,sb);
/* Die Farbe des Hintergrundes wird durch die Farbe, die unter b definiert ist, festgelegt */
this.setBackground(b);
/* Die Schriftart von g wird mit dem vorher definierten Objekt f angegeben */
g.setFont(f);
/* Die Schriftfarbe von g wird mit der vorher definierten Farbe s angegeben */
g.setColor(s);
/* Anweisung, dass die Buchstaben aus dem String text gezeichnet werden sollen und zwar in die
* Position, die mit dem Inhalt der Variabeln x und y angegeben wurde.
*/
g.drawString(text, x, y); }
}