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

本文介绍了一种使用Java编程语言实现的动态数字显示与停止控制程序,该程序通过创建多个线程来实时更新显示窗口中的数字,并提供了一个停止按钮来中断这些动态更新。

结合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("选号程序");
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值