1 36 37 40 41 50 51 import java.awt.*; 52 import java.util.*; 53 54 public class Blink extends java.applet.Applet { 55 private Timer timer; private String labelString; private int delay; 59 public void init() { 60 String blinkFrequency = getParameter("speed"); 61 delay = (blinkFrequency == null) ? 400 : 62 (1000 / Integer.parseInt(blinkFrequency)); 63 labelString = getParameter("lbl"); 64 if (labelString == null) 65 labelString = "Blink"; 66 Font font = new java.awt.Font ("Serif", Font.PLAIN, 24); 67 setFont(font); 68 } 69 70 public void start() { 71 timer = new Timer(); timer.schedule(new TimerTask() { public void run() { 75 repaint(); 76 } 77 } 78 , delay, delay); 79 } 80 81 public void paint(Graphics g) { 82 int fontSize = g.getFont().getSize(); 83 int x = 0, y = fontSize, space; 84 int red = (int) ( 50 * Math.random()); 85 int green = (int) ( 50 * Math.random()); 86 int blue = (int) (256 * Math.random()); 87 Dimension d = getSize(); 88 g.setColor(Color.black); 89 FontMetrics fm = g.getFontMetrics(); 90 space = fm.stringWidth(" "); 91 for (StringTokenizer t = new StringTokenizer(labelString); 92 t.hasMoreTokens();) { 93 String word = t.nextToken(); 94 int w = fm.stringWidth(word) + space; 95 if (x + w > d.width) { 96 x = 0; 97 y += fontSize; } 99 if (Math.random() < 0.5) 100 g.setColor(new java.awt.Color ((red + y*30) % 256, 101 (green + x/3) % 256, blue)); 102 else 103 g.setColor(getBackground()); 104 g.drawString(word, x, y); 105 x += w; } 107 } 108 109 public void stop() { 110 timer.cancel(); } 112 113 public String getAppletInfo() { 114 return "Title: Blinker\n" 115 + "Author: Arthur van Hoff\n" 116 + "Displays multicolored blinking text."; 117 } 118 119 public String [][] getParameterInfo() { 120 String pinfo[][] = { 121 {"speed", "string", "The blink frequency"}, 122 {"lbl", "string", "The text to blink."}, 123 }; 124 return pinfo; 125 } 126 } 127
| Popular Tags
|