一個簡單的多線程例子,由AWT實現,兩個按鈕,點擊第一個,開始自加,點擊第二個按鈕時結束,代碼如下。
import java.awt.*;
import java.awt.event.*;
class StopableFrame extends Frame implements Runnable, ActionListener{
static long i = 0;
static Label lab = new Label();
Button but1 = new Button("Start");
Button but2 = new Button("Stop");
static boolean running = false;
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("Start")){
new Thread(new StopableFrame(), "Start").start();
}else{
Thread t = new Thread(new StopableFrame(), "Stop");
t.setPriority(10);
t.start();
}
}
public StopableFrame(){
super();
}
public void exec(){
but1.addActionListener(this);
but2.addActionListener(this);
add(lab);
add(but1);
add(but2);
setLayout(new GridLayout());
setSize(300, 100);
setVisible(true);
}
public StopableFrame(String name){
super(name);
}
public void run(){
if(Thread.currentThread().getName().equals("Start")){
if(running){
System.out.println("Process is running!!");
}else{
running = true;
while(running){
lab.setText(Long.toString(i++));
}
}
}else{
running = false;
lab.setText(lab.getText() + "----Stoped !!!");
}
}
}
public class AWTThreadDemo{
public static void main(String[] args){
StopableFrame sf = new StopableFrame("Stopable Frame");
sf.exec();
}
}
571

被折叠的 条评论
为什么被折叠?



