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();  

       }

    }

     

  • 相关阅读:
    DB2原因码7,解决方法
    打包项目成war包并部署到服务器上,项目运行一直显示加载中
    解决js中对象中属性是数组中对应元素,不能使用点数组元素(.数组[i])来获取value值来循环,属性不能是数组元素array[i]的问题
    javaweb项目中jsp的from表单提交action内容与web.xml的servlet-mapping对应
    Collection迭代器Iterator的使用
    使用switch计算出某年某月某日是今年的第几天,输出一直是当月天数
    DB2添加联合主键
    您的主机中的软件中止了一个已建立的连接
    java中在构造方法中修改线程名,修改失败原因(现已修改成功)
    String字符串加号的作用与基本数据类型加号的作用的区别
  • 原文地址:https://www.cnblogs.com/ying1314/p/5470304.html
Copyright © 2011-2022 走看看