Back to "Animating Applets"
VMarquee Source
import java.applet.Applet;
import java.awt.*;
class VMarquee extends Applet implements Runnable
{
Thread kicker;
Image VBuffer;
Graphics VContext;
Font VFont = new Font("Times New Roman", 0, 24);
String VText;
int VPos;
public void init() {
VBuffer = createImage(size().width, size().height);
VContext = VBuffer.getGraphics();
VPos = size().height + 5;
VText = getParameter("Text");
if (VText == null) {
VText = "THE LIBRARY OF WEB DESIGN PRESENTS - THE VERTICALLY SCROLLING MARQUEE";
}
VContext.setFont(VFont);
}
public void start() {
if (kicker == null) {
kicker = new Thread(this);
kicker.start();
}
}
public void stop() {
kicker = null;
}
public void run() {
while(true) {
VPos -= 5;
if (VPos < (0 - VContext.getFontMetrics().getHeight() * VText.length())) {
VPos = size().height + 5;
}
repaint();
try {
kicker.sleep(100);
}
catch(Exception e) {
break;
}
}
}
public void update(Graphics g) {
paint(g);
}
public void paint(Graphics g) {
String VChar;
VContext.setColor(Color.white);
VContext.fillRect(0, 0, size().width, size().height);
VContext.setColor(Color.black);
for (int p = 0; p < VText.length() ; p++) {
VChar = VText.substring(p, p + 1);
VContext.drawString(VChar, (size().width / 2) - (VContext.getFontMetrics().stringWidth(VChar) / 2), VPos + (p * VContext.getFontMetrics().getHeight()));
}
g.drawImage(VBuffer, 0, 0, this);
}
}
Back to Top | Back to "Animating Applets"