有关线程的问题

qps2006 2006-02-02 10:34:42
我对线程不太理解,找到一个示例,却是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;
}
}
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qps2006 2006-02-02
  • 打赏
  • 举报
回复
谢谢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;
}
}
thumb3344 2006-02-02
  • 打赏
  • 举报
回复
改了一半,不想改了,原国改得方法很多,很灵活,命令行是一个样,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()方法,是不是有点思路了?

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧