JavaSwing使用简单多线程实现随机点名可视化应用程序

JavaSwing使用简单多线程实现随机点名可视化应用程序

1.首先来看一下小程序最终实现的效果
  • 初始界面
    在这里插入图片描述
  • 运行及终止界面
    在这里插入图片描述
    ps:运行状态中显示的名称是随机变换的,但是截图并不能看出效果哦^_^。
2.具体的实现过程及方法

首先我们用JavaSwing先把这个界面写出来,然后再在相应的控件按钮上添加点击事件,实现不同的控制逻辑即可,下面一起看看具体的实现过程吧^_^。

  • 开始按钮的事件及实现
	//定义开始按钮
	JButton btnStart = new JButton("开始");
	btnStart.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
		    //防止重复点击开始按钮以致多次创建线程
			if(startThread==null||!startThread.isAlive())
			{
				startThread=new Thread(new Runnable(){
					
					public void run(){
						while(true)
						{
							try {
								start();
								//设置随机的间隔时间ms				
								Thread.sleep(50);	
							} catch (InterruptedException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
									
						}		
					}			
				});
				startThread.start();	
			}							
		}			
	});
  • 停止按钮的事件及实现
	//定义停止按钮
	JButton btnEnd = new JButton("停止");
	btnEnd.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			//判断当前线程是否存在
			if(startThread!=null)
			{
				startThread.stop();
			}
		
		}
	});
  • start()方法的定义
public void start() throws InterruptedException{
		//定义班级同学姓名
		String[] classnames={"小王","小李","小赵","小张","小黄","小程","小肖"};
		
		//定义一个整型随机数
		Random ran=new Random();
		int selectedNum=ran.nextInt(classnames.length);
		
		//随机选中一个名称,并在UI上显示
		String name=classnames[selectedNum];
		lblName.setText(name);	
		
	}

其实这里的数据源我们可以改成从数据库中获取学生姓名,这样就更加贴近实际的应用,我们在这里只是为了方便而已。。。


好了,当我们做完这一切的设计后,我们也就可以感受一下老师在点名的感觉了^^。

猜你喜欢

转载自blog.csdn.net/wrlovesmile/article/details/107437679
今日推荐