关闭

【Java多线程编程】选号程序

标签: 多线程编程选号程序
462人阅读 评论(0) 收藏 举报
分类:

结合GUI程序设计,编写选号程序,要求在窗体中安排6个标签,每个标签上显示0~9之间的一位数字,每位数字用一个线程控制其变化,单击“停止”按钮则所有标签数字停止变化。下面是运行结果图,注释请看代码。


package XiaoMi;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

//六个标签线程,产生随机数
class MyLabel extends Label implements	Runnable{
	
	int value;
	boolean stop =false;
	
	public MyLabel(){
		super("number");
		value =0;
	}
	
	@Override
	public void run() {
		// TODO Auto-generated method stub
	while(true){
		value =(int)(Math.random()*10);
		setText(Integer.toString(value));
		try{
			Thread.sleep(500);
		}catch (InterruptedException e){}
		if(stop){
			break;
		}
	}	
	}
	
}
//主控线程,利用数组管理六个标签,利用判定条件结束子线程
public class test24 extends Frame{

	/**
	 * 六个随机选号线程,一个主控线程
	 * @param args
	 */
	MyLabel x[] =new MyLabel[6];
	
	public test24(String title){
		super(title);
		Panel disp =new Panel();
		disp.setLayout(new FlowLayout());
		for(int i=0; i<6; i++){
			x[i] =new MyLabel();
			disp.add(x[i]);
			new Thread(x[i]).start();
		}
		add("Center",disp);
		Button control =new Button("停止");
		add("South",control);
		pack();
		setVisible(true);
		control.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				for(int i=0;i<6;i++){
					x[i].stop =true;
				}
			}
		});
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new test24("选号程序");
	}
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:348190次
    • 积分:5622
    • 等级:
    • 排名:第4877名
    • 原创:233篇
    • 转载:61篇
    • 译文:3篇
    • 评论:40条
    最新评论