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 Mapmap=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条)