import java.applet.Applet; import java.awt.*; /** * Write a description of the applet class Blinker here. * * @author CSE 341 students * @version Nov 15, 2002 */ public class Blinker extends Applet implements Runnable { // instance variables - replace the example below with your own // (none) /** * Called by the browser or applet viewer to inform this Applet that it * has been loaded into the system. It is always called before the first * time that the start method is called. */ public void init() { // provide any initialisation necessary for your Applet Thread blinkThread = new Thread(this); blinkThread.start(); } /** * Called by the browser or applet viewer to inform this Applet that it * should start its execution. It is called after the init method and * each time the Applet is revisited in a Web page. */ public void start() { // provide any code requred to run each time // web page is visited } /** * This may be the most important method in your applet: Here, the * drawing of the applet gets done. "paint" gets called everytime the * applet should be drawn on the screen. So put the code here that * shows the applet. * * @param g the Graphics object for this applet */ public void paint(Graphics g) { // simple text displayed on applet g.setColor(Color.black); g.drawString("Blink Applet", 20, 20); } /** * Called by the browser or applet viewer to inform this Applet that * it should stop its execution. It is called when the Web page that * contains this Applet has been replaced by another page, and also * just before the Applet is to be destroyed. If you do not have any * resources that you need to release (such as threads that you may * want to stop) you can remove this method. */ public void stop() { // provide any code that needs to be run when page // is replaced by another page or before Applet is destroyed } /** * Called by the browser or applet viewer to inform this Applet that it * is being reclaimed and that it should destroy any resources that it * has allocated. The stop method will always be called before destroy. * If you do not have any resources that you need to release you can * remove this method. */ public void destroy() { // provide code to be run when Applet is about to be destroyed. } /** * Returns information about this applet. * An applet should override this method to return a String containing * information about the author, version, and copyright of the Applet. * * @return a String representation of information about this Applet */ public String getAppletInfo() { // replace this with your own info return "Title: BlueJ Applet Demo\n" + "Author: CSE 341 students\n" + "A simple applet that blinks."; } /** * Returns information about the parameters that are understood by this * Applet. You should return an array of Strings here to provide details * about each of the parameters separately. * Each element of the array should be a set of three Strings containing * the name, the type, and a description. * * @return a String[][] representation of parameter information about * this Applet */ public String[][] getParameterInfo() { // provide parameter information about the applet String paramInfo[][] = { {"firstParameter", "1-10", "description of first parameter"}, {"secondParameter", "boolean", "description of second parameter"} }; return paramInfo; } public void run() { Thread currentThread = Thread.currentThread(); int deltaT = 2000; try { while (true) { setBackground(Color.red); currentThread.sleep(deltaT); setBackground(Color.blue); currentThread.sleep(deltaT); } } catch (InterruptedException e) {} } }