zoukankan      html  css  js  c++  java
  • Java第六次作业

    import java.awt.*;

    import javax.swing.*;

    import java.awt.event.*;

    import java.util.*;

    import java.util.Timer;

    import java.io.*;

     class ChouJiang {

     JFrame frame = new JFrame();

     JLabel label_name = new JLabel("姓名");

     JLabel label_num = new JLabel("学号");

     jPanel photo = new jPanel();

     JButton startButton = new JButton("开始抽奖");

     JButton stopButton = new JButton("结束抽奖");

     int index; // 保持学生信息与头像的同步

     ArrayList<Student> array = null; // 存储读出来的学生信息

     Timer timer;

     public ChouJiang() {

      // 读取学生信息  

    array = new ArrayList<Student>();  

        try {   

        BufferedReader bufferReader = new BufferedReader(new FileReader(      "student/stu2.txt"));

        StringBuffer stringBuffer = new StringBuffer();

        String lineContent = null;  

        String name = "";

       int num = 0;

       while ((lineContent = bufferReader.readLine()) != null) {

        // 每一行区分的标识符是空格   

      StringTokenizer st = new StringTokenizer(lineContent, " ");   

      // 读取学号和姓名。每一行只有两个元素,所以I的取值就是0和1,0代表学号,1代表姓名  

         for (int i = 0; st.hasMoreElements(); i++) {

         String word = (String) st.nextElement();

         if (i == 0) {

         num = Integer.parseInt(word);   

      } else {    

              name = word;    

      }  

      }    

       Student student = new Student(name, num);  

       array.add(student);  

      }

      } catch (IOException e) {

          e.printStackTrace();  

      }

    frame.getContentPane().add(BorderLayout.WEST, startButton);

      frame.getContentPane().add(BorderLayout.EAST, stopButton);

      frame.getContentPane().add(BorderLayout.NORTH, label_num);  

    frame.getContentPane().add(BorderLayout.SOUTH, label_name);

      frame.getContentPane().add(BorderLayout.CENTER, photo);

     startButton.addActionListener(new startlButtonListener()); 

     stopButton.addActionListener(new endButtonListener());  

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     frame.setSize(400, 400);  

     frame.setVisible(true);

     index = 0;  }

     class MyTask extends TimerTask {

     public void run() {  

     int end = (int) (Math.random() * array.size());  

     for (int i = 0; i < end; i++) {

      abel_num     

      .setText("学号:" + String.valueOf(array.get(i).getNum()));    

       label_name.setText("姓名:" + array.get(i).getName());

       index = i;    

    frame.repaint();

        try {   

       Thread.sleep(5);   

      } catch (Exception e) {  

        e.printStackTrace();   

          }

        }

      }  

    }

      class startlButtonListener implements ActionListener {  

      public void actionPerformed(ActionEvent event) {  

      timer = new Timer();   

      timer.scheduleAtFixedRate(new MyTask(), 0, 100);  

    }

     }

      class endButtonListener implements ActionListener {

      public void actionPerformed(ActionEvent event) {  

      timer.cancel();

      }

     }

      class jPanel extends JPanel {

      private static final long serialVersionUID = 1L;

      public void paintComponent(Graphics g) {  

      Image image = new ImageIcon("image/" + index + ".jpg").getImage(); 

      g.drawImage(image, 60, 100, this);

       }

      }

    }

      class Student {  private String name;  private int num;

      public String getName() {

      return name;

     }

     public void setName(String name) {  

     this.name = name;  

    }

      public int getNum() {

      return num;

     }

       public void setNum(int num) {

       this.num = num;

     }

      public Student(String name, int num) {  

      this.name = name;  

      this.num = num;

     }

     public void print() {  

    System.out.println(num + " " + name);

         }

    }

       public class choujiang {

       public static void main(String[] args) {

             ChouJiang cj = new ChouJiang();  

       }

    }

     

  • 相关阅读:
    23. 霍纳法则(多项式求值快速算法)
    22. 欧几里德算法(求最大公约数GCD)
    [poj 2106] Boolean Expressions 递归
    [poj 1185] 炮兵阵地 状压dp 位运算
    [MOOC程序设计与算法二] 递归二
    [poj 3254] Corn Fields 状压dp
    [hdu 1074] Doing Homework 状压dp
    [hdu 1568] Fibonacci数列前4位
    [haut] 1281: 邪能炸弹 dp
    [hdu 2604] Queuing 递推 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/ying1314/p/5470304.html
Copyright © 2011-2022 走看看