栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

点兵点将,抽奖小程序,多线程显示时间

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

点兵点将,抽奖小程序,多线程显示时间

package pointSoldierPoint;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.TreeSet;

import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Jtextarea;
import javax.xml.crypto.Data;


public class Soldier extends Jframe implements Runnable{

	
	private JPanel panel;
	private JButton button;
	private JLabel label;
	private Jtextarea text;
	
	
	private static Map map=null;
	
	
	static {
		map=new HashMap();
		String name=null;
		int id=1;	
		
		//从外部获取文件
		File file=new File("students.txt");
		try(BufferedReader bf=new BufferedReader(new FileReader(file));){
			while((name=bf.readLine())!=null) {
				map.put(id, name);
				id++;
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	//通过构造方法调用其他方法,并设置相关属性
	public Soldier() {
		init();
		buttonAt();
		this.setSize(600, 500);//窗体大小
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭
		this.setTitle("抽奖");//标题
		this.setVisible(true);//设置显示
	}
	
	public void init() {
		
		panel=new JPanel(new GridLayout(3, 1));//网格布局
		button=new JButton("点我");
		label=new JLabel("中奖名单");
		text=new Jtextarea(3,30);
		
		panel.add(button);
		panel.add(label);
		panel.add(text);
		
		this.getContentPane().add(panel);
		
	}
	
	
	public void buttonAt() {
		button.addActionListener((e)->{
			
			TreeSet set=new TreeSet<>();//排序不重复
			while(set.size()<5) {
				Random random=new Random();
				int num=random.nextInt(29)+1;
				set.add(num);
			}
			StringBuffer sb =new StringBuffer();//存放中奖者姓名
			
			for(Integer s:set) {
				String name=map.get(s);
				sb.append(name+",");
			}
			text.setText(sb.substring(0, sb.toString().length()-1));
		});
	}
	public static void main(String[] args) {
		System.out.println(map.size());
		Soldier s1=new Soldier();//构造方法
		new Thread(s1).start();//启动时间线程
	}
	@Override
	public void run() {
		// TODO Auto-generated method stub
		//设置时间
		while(true) {
			Date date=new Date();
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			String time =sdf.format(date);
			label.setText("中奖名单(当前时间"+time+")");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			
		}
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/709952.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号