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

public class Abspann extends Applet implements Runnable
{

private Thread m_Abspann = null;
String m_string = "Willkommen bei Bernd Nötscher.";
String m_string2 = "Software-Entwicklung in Java";
String m_string3 = " ~ ";
String m_string4 = "Sourcecode von Abspann.java ";

int nZeilenAnzahl=4;
String m_font = "Helvetica";
int m_size = 16;
int m_fps = 12;
private int m_nOffset;
private int m_nMax;
private int m_nMin;
int nCounter=0;
boolean nHochzaehlen=true;
Image m_image;
Graphics m_g;
int m_breite;
int m_hoehe;
int nX;
Font font;


public Abspann()
{
}


public String getAppletInfo()
{
return "Bernd Nötscher\r\n" +
"Copyright (c) 1998";
}


public void init()
{
//resize(320, 40);
font = new Font(m_font, Font.PLAIN, m_size);
setFont(font);


m_nMin = -(nZeilenAnzahl * m_size);
m_nMax = size().height;
m_nOffset = m_nMax;
m_breite = size().width;

m_hoehe = size().height;
m_image = createImage(m_breite, m_hoehe);
m_g = m_image.getGraphics();

}


public void destroy()
{
}


public void update(Graphics g)
{

FontMetrics fm = getFontMetrics(font);
// m_g.setColor(Color.white);
m_g.setColor(Color.black);
m_g.fillRect(0, 0, m_breite, m_hoehe);

m_g.setColor(new Color(255, 230, 255));
m_g.fillRect(0 + 1, 0 + 1, m_breite - 2, m_hoehe - 2);


m_g.setColor(Color.black);
//m_g.setColor(new Color(0, 0, 200));
nX = (m_breite - fm.stringWidth(m_string)) / 2; m_g.drawString(m_string, nX, m_nOffset + m_size);
nX = (m_breite - fm.stringWidth(m_string2)) / 2; m_g.drawString(m_string2, nX, m_nOffset + (m_size * 2));
nX = (m_breite - fm.stringWidth(m_string3)) / 2; m_g.drawString(m_string3, nX, m_nOffset + (m_size * 3));
nX = (m_breite - fm.stringWidth(m_string4)) / 2; m_g.drawString(m_string4, nX, m_nOffset + (m_size * 4));
m_nOffset--;
if(m_nOffset<m_nMin){
m_nOffset = m_nMax;
}
paint(g);
}


public void paint(Graphics g)
{
if(m_image!=null){
g.drawImage(m_image, 0, 0, null);
}
}


public void start()
{
if (m_Abspann == null)
{
m_Abspann = new Thread(this);
m_Abspann.start();
}
}


public void stop()
{
if (m_Abspann != null)
{
m_Abspann.stop();
m_Abspann = null;
}

}


public void run()
{


while (true)
{
int nSleepValue = 1000 / m_fps;

try
{
repaint();
Thread.sleep(nSleepValue);
}
catch (InterruptedException e)
{
stop();
}
}
}

}