有关线程的问题
我对线程不太理解,找到一个示例,却是applet,有谁能帮我改成application:
//这个applet很简单,就是每秒显示一下时间
//请用System.out.println代替g.drawString(System.currentTimeMillis()+"", 0, 12);
//(把 applet删掉)
import java.awt.*;
import java.applet.*;
public class Clock extends java.applet.Applet
implements Runnable {
private volatile Thread clockThread = null;
public void init() {
setBackground(Color.blue);
resize(275, 25);
}
public void start() {
if (clockThread == null) {
clockThread = new Thread(this, "Clock");
clockThread.start();
}
}
public void run() {
Thread myThread = Thread.currentThread();
while (clockThread == myThread) {
repaint();
try {
Thread.sleep(1000);
} catch (InterruptedException e){ }
}
}
public void paint(Graphics g)
{g.setColor(Color.black);
g.drawString(System.currentTimeMillis()+"", 0, 12);
}
public void stop() {
clockThread = null;
}
}
问题点数:20、回复次数:2Top
1 楼thumb3344(祖国啊,我只是一个摆地摊的!)回复于 2006-02-02 10:46:35 得分 20
改了一半,不想改了,原国改得方法很多,很灵活,命令行是一个样,JFrame又是另一个样.
我贴一断,代码,楼主有时间自己改,这样收获比我讲得大.
import java.util.*;
public class SleepingThread extends Thread {
private int countDown = 5;
private static int threadCount = 0;
public SleepingThread() {
super("" + ++threadCount);
start();
}
public String toString() {
return "#" + getName() + ": " + countDown;
}
public void run() {
while(true) {
System.out.println(this);
if(--countDown == 0) return;
try {
sleep(10000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
public static void main(String args[]) {
for(int i=0;i<5;i++)
new SleepingThread();
}
}
看那个main()方法,是不是有点思路了?Top
2 楼qps2006()回复于 2006-02-02 11:04:50 得分 0
谢谢thumb3344!
我自己也改完了:
public class Clock2 implements Runnable {
volatile Thread clockThread = null;
public void start() {
if (clockThread == null) {
clockThread = new Thread(this, "Clock");
clockThread.start();
}
}
public static void main(String args[]) {
new Clock2().start();
}
public void run() {
Thread myThread = Thread.currentThread();
while (clockThread == myThread) {
System.out.println(System.currentTimeMillis()+"");
try {
Thread.sleep(1000);
} catch (InterruptedException e){ }
}
}
public void stop() {
clockThread = null;
}
}
Top




