效果图如下:
CMain函数:
1 package com.shubing.main; 2 3 public class CMain 4 { 5 public static void main(String[] args) 6 { 7 MainFrame mainFrame = new MainFrame(); 8 mainFrame.setVisible(true); 9 } 10 }
MainFrame函数:
1 package com.shubing.main; 2 3 import java.awt.*; 4 import java.awt.event.*; 5 import javax.swing.*; 6 7 public class MainFrame extends JFrame implements ActionListener 8 { 9 public static boolean flag = false; 10 public JButton enter = new JButton("确定"); 11 public JButton exit = new JButton("退出"); 12 public JLabel text = new JLabel("点名"); 13 public JLabel name = new JLabel("姓名"); 14 public String[] nameList = {"王一","刘二","赵三","周四","马五","龙六","张七","贾八","钟九"}; 15 public JLabel message = new JLabel("学生总数:"+nameList.length); 16 public EnterThread mainThread = null; 17 public MainFrame() 18 { 19 this.setTitle("点名系统"); 20 this.setSize(230,150); 21 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 22 this.setLocationRelativeTo(null); 23 this.setLayout(null); //布局为空; 24 this.setFocusable(false); 25 26 text.setBounds(20, 10, 100, 30); 27 name.setBounds(100, 10, 180, 30); 28 enter.setBounds(20, 50, 80, 20); 29 exit.setBounds(110, 50, 80, 20); 30 message.setBounds(120, 80, 100, 20); 31 32 this.add(text); 33 this.add(name); 34 this.add(enter); 35 this.add(exit); 36 this.add(message); 37 38 enter.setEnabled(true); 39 exit.setEnabled(false); 40 41 Font font = new Font("华文行楷",Font.BOLD,22); 42 this.text.setFont(font); 43 this.name.setFont(font); 44 45 enter.addActionListener(this); 46 exit.addActionListener(this); 47 } 48 49 @Override 50 public void actionPerformed(ActionEvent e) 51 { 52 if(e.getSource() == enter) 53 { 54 mainThread = new EnterThread(this); 55 mainThread.start(); 56 enter.setEnabled(false); 57 exit.setEnabled(true); 58 } 59 if(e.getSource() == exit) 60 { 61 new ExitThread(this).start(); 62 exit.setEnabled(false); 63 } 64 65 } 66 67 }
EnterThread函数:
1 package com.shubing.main; 2 3 public class EnterThread extends Thread 4 { 5 private MainFrame mainFrame = null; 6 private boolean isStop = true; 7 public int time = 50; 8 9 public EnterThread(MainFrame mainFrame) 10 { 11 this.mainFrame = mainFrame; 12 } 13 public void stopThread() 14 { 15 this.isStop = false; 16 } 17 public void run() 18 { 19 try 20 { 21 int index = 0; 22 while(isStop) 23 { 24 if(index == this.mainFrame.nameList.length) 25 { 26 index = 0; 27 } 28 this.mainFrame.name.setText(mainFrame.nameList[index]); 29 index ++; 30 31 Thread.sleep(time); 32 } 33 } 34 catch (InterruptedException e) 35 { 36 e.printStackTrace(); 37 } 38 this.mainFrame.enter.setEnabled(true); 39 } 40 }
ExitThread函数:
1 package com.shubing.main; 2 3 public class ExitThread extends Thread 4 { 5 private MainFrame mainFrame = null; 6 7 public ExitThread(MainFrame mainFrame) 8 { 9 this.mainFrame = mainFrame; 10 } 11 12 public void run() 13 { 14 try 15 { 16 for(int i=0;i<=400;i+=50) 17 { 18 this.mainFrame.mainThread.time += i; 19 sleep(1600); 20 } 21 } 22 catch (InterruptedException e) 23 { 24 e.printStackTrace(); 25 } 26 mainFrame.mainThread.stopThread(); 27 } 28 }