# HG changeset patch # User mrkam # Date 1301071971 -3600 # Node ID 64b719bac41114da0bd156685c7a71ebb5e516c4 # Parent 46991a517c09085c163f13bec53264a0c35b1618 7027675: /applets/Blink demo needs to be improved Reviewed-by: alexp diff -r 46991a517c09 -r 64b719bac411 jdk/src/share/demo/applets/Blink/Blink.java --- a/jdk/src/share/demo/applets/Blink/Blink.java Fri Mar 25 13:27:21 2011 +0100 +++ b/jdk/src/share/demo/applets/Blink/Blink.java Fri Mar 25 17:52:51 2011 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -29,92 +29,106 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* - */ /** * I love blinking things. * * @author Arthur van Hoff - * @modified 04/24/96 Jim Hagen use getBackground - * @modified 02/05/98 Mike McCloskey removed use of deprecated methods - * @modified 04/23/99 Josh Bloch, use timer instead of explicit multithreading. - * @modified 07/10/00 Daniel Peek brought to code conventions, minor changes + * @author 04/24/96 Jim Hagen use getBackground + * @author 02/05/98 Mike McCloskey removed use of deprecated methods + * @author 04/23/99 Josh Bloch, use timer instead of explicit multithreading. + * @author 07/10/00 Daniel Peek brought to code conventions, minor changes */ +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.util.StringTokenizer; +import java.util.Timer; +import java.util.TimerTask; -import java.awt.*; -import java.util.*; public class Blink extends java.applet.Applet { + + private static final long serialVersionUID = -775844794477507646L; private Timer timer; // Schedules the blinking private String labelString; // The label for the window private int delay; // the delay time between blinks + @Override public void init() { String blinkFrequency = getParameter("speed"); - delay = (blinkFrequency == null) ? 400 : - (1000 / Integer.parseInt(blinkFrequency)); + delay = (blinkFrequency == null) ? 400 + : (1000 / Integer.parseInt(blinkFrequency)); labelString = getParameter("lbl"); - if (labelString == null) + if (labelString == null) { labelString = "Blink"; + } Font font = new java.awt.Font("Serif", Font.PLAIN, 24); setFont(font); } + @Override public void start() { timer = new Timer(); //creates a new timer to schedule the blinking timer.schedule(new TimerTask() { //creates a timertask to schedule + // overrides the run method to provide functionality + @Override public void run() { repaint(); } - } - , delay, delay); + }, delay, delay); } + @Override public void paint(Graphics g) { int fontSize = g.getFont().getSize(); int x = 0, y = fontSize, space; - int red = (int) ( 50 * Math.random()); - int green = (int) ( 50 * Math.random()); - int blue = (int) (256 * Math.random()); + int red = (int) (50 * Math.random()); + int green = (int) (50 * Math.random()); + int blue = (int) (256 * Math.random()); Dimension d = getSize(); g.setColor(Color.black); FontMetrics fm = g.getFontMetrics(); space = fm.stringWidth(" "); for (StringTokenizer t = new StringTokenizer(labelString); - t.hasMoreTokens();) { + t.hasMoreTokens();) { String word = t.nextToken(); int w = fm.stringWidth(word) + space; if (x + w > d.width) { x = 0; y += fontSize; //move word to next line if it doesn't fit } - if (Math.random() < 0.5) - g.setColor(new java.awt.Color((red + y*30) % 256, - (green + x/3) % 256, blue)); - else + if (Math.random() < 0.5) { + g.setColor(new java.awt.Color((red + y * 30) % 256, + (green + x / 3) % 256, blue)); + } else { g.setColor(getBackground()); + } g.drawString(word, x, y); x += w; //shift to the right to draw the next word } } + @Override public void stop() { timer.cancel(); //stops the timer } + @Override public String getAppletInfo() { return "Title: Blinker\n" - + "Author: Arthur van Hoff\n" - + "Displays multicolored blinking text."; + + "Author: Arthur van Hoff\n" + + "Displays multicolored blinking text."; } + @Override public String[][] getParameterInfo() { String pinfo[][] = { - {"speed", "string", "The blink frequency"}, - {"lbl", "string", "The text to blink."}, - }; + { "speed", "string", "The blink frequency" }, + { "lbl", "string", "The text to blink." }, }; return pinfo; } }