
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();
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)