mirror of
https://github.com/openjdk/jdk.git
synced 2026-02-16 13:25:34 +00:00
7027675: /applets/Blink demo needs to be improved
Reviewed-by: alexp
This commit is contained in:
parent
12f9a0fc72
commit
68002d4098
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user