/*
* 1.1 version.
*/
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.TextArea;
public class PrintThread extends Applet {
java.awt.TextArea display = new java.awt.TextArea(1, 80);
int paintCount = 0;
String newline;
public void init() {
//Create the text area and make it uneditable.
display = new TextArea(1, 80);
display.setEditable(false);
//Set the layout manager so that the text area
//will be as wide as possible.
setLayout(new java.awt.GridLayout(1,0));
//Add the text area to the applet.
add(display);
//Find the platform-dependent newline character.
newline = System.getProperty("line.separator");
addItem("init: " + threadInfo(Thread.currentThread()));
}
public void start() {
addItem("start: " + threadInfo(Thread.currentThread()));
}
public void stop() {
addItem("stop: " + threadInfo(Thread.currentThread()));
}
public void destroy() {
addItem("destroy: " + threadInfo(Thread.currentThread()));
//removeAll(); //XXXAppletViewer allows 2 init calls.
}
String threadInfo(Thread t) {
return "thread=" + t.getName() + ", "
+ "thread group=" + t.getThreadGroup().getName();
}
void addItem(String newWord) {
System.out.println(newWord);
display.append(newWord + newline);
display.repaint();
//A hack to get the applet update() method called
//occasionally:
if (++paintCount % 4 == 0) {
repaint();
}
}
public void update(Graphics g) {
addItem("update: " + threadInfo(Thread.currentThread()));
super.update(g);
}
}
|