51 import java.awt.Color;
52 import java.awt.Dimension;
54 import java.awt.FontMetrics;
55 import java.awt.Graphics;
56 import java.util.StringTokenizer;
57 import java.util.Timer;
58 import java.util.TimerTask;
70 String blinkFrequency = getParameter(
"speed");
71 delay = (blinkFrequency ==
null) ? 400
72 : (1000 / Integer.parseInt(blinkFrequency));
77 Font
font =
new java.awt.Font(
"Serif", Font.PLAIN, 24);
84 timer.schedule(
new TimerTask() {
96 int fontSize = g.getFont().getSize();
97 int x = 0, y = fontSize, space;
98 int red = (int) (50 * Math.random());
99 int green = (int) (50 * Math.random());
100 int blue = (int) (256 * Math.random());
101 Dimension d = getSize();
102 g.setColor(Color.black);
103 FontMetrics fm = g.getFontMetrics();
104 space = fm.stringWidth(
" ");
105 for (StringTokenizer
t =
new StringTokenizer(
labelString);
106 t.hasMoreTokens();) {
107 String word =
t.nextToken();
108 int w = fm.stringWidth(word) + space;
109 if (x + w > d.width) {
113 if (Math.random() < 0.5) {
114 g.setColor(
new java.awt.Color((red + y * 30) % 256,
115 (green + x / 3) % 256, blue));
117 g.setColor(getBackground());
119 g.drawString(word, x, y);
131 return "Title: Blinker\n"
132 +
"Author: Arthur van Hoff\n"
133 +
"Displays multicolored blinking text.";
139 {
"speed",
"string",
"The blink frequency" },
140 {
"lbl",
"string",
"The text to blink." }, };