⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 namecallermachine.java

📁 点名程序
💻 JAVA
字号:
import java.io.File; 
import java.io.FileInputStream;
import java.io.IOException; 
import java.io.InputStream;
import java.util.ArrayList; 
import java.util.Scanner; 
import java.awt.*;

import javax.swing.*;

import java.awt.event.*;
import javax.swing.Timer;
import sun.audio.*;

public class NameCallerMachine {	
	MyFrame myframe =new MyFrame();
	private JPanel startButtonPanel;
	private JPanel stopButtonPanel;	
	private JLabel label;
	private JLabel imageLabel;
	private ImageIcon imageIcon;  
	ActionListener listener=new ChangeInf();
	StudentReader stuReader=new StudentReader();
	StudentInf[] stuList=stuReader.ReadStudent();
	private Timer timer=new Timer(60,listener);
	private StudentInf  teacher =new StudentInf("Teacher"); 
	private StudentInf stupidStudent;
	AudioStream as;
	
	public  NameCallerMachine() throws IOException{
	   EventQueue.invokeLater(new Runnable(){
       public void run() {
       myframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       myframe.setVisible(true);
         }});  
      StudentCaller stucaller=new StudentCaller();
      stucaller.CallStudent();
		
	}

	public class StudentCaller{
		public void CallStudent(){
			JButton startButton=new JButton("开始点名");	
			startButtonPanel=new JPanel();
			startButtonPanel.add(startButton);
			myframe.add(startButtonPanel,BorderLayout.SOUTH); 
			
			JButton stopButton=new JButton("结束点名");	
			stopButtonPanel=new JPanel();
			stopButtonPanel.add(stopButton);
			
			StartAction startaction=new StartAction();
			startButton.addActionListener(startaction);
			
			StopAction stopaction=new StopAction();
			stopButton.addActionListener(stopaction);
		}
	}
	
	
	class StartAction implements ActionListener{ 
	public void actionPerformed(ActionEvent Event){ 	
		myframe.add(stopButtonPanel,BorderLayout.SOUTH); 
		myframe.remove(startButtonPanel);
		try{ 
			InputStream in = new FileInputStream ("点名.au"); 
			as = new AudioStream (in); 
			}catch( Exception e){ 
			e.printStackTrace(); 
			} 
			AudioPlayer.player.start (as); 
	        timer.start();
	           } }	
	
	class StopAction implements ActionListener{ 
	public void actionPerformed(ActionEvent Event){ 		
	   myframe.add(startButtonPanel,BorderLayout.SOUTH); 
	   myframe.remove(stopButtonPanel);
	   AudioPlayer.player.stop(as); 
	   timer.stop();
	  
		           } }	
	
	class ChangeInf implements ActionListener{ 
	public void actionPerformed(ActionEvent Event){ 
	stupidStudent=teacher.getnextstudent(stuList);
	label.setText("                     "+stupidStudent.getname());	
	StringBuilder builder=new StringBuilder();
	builder.append(stupidStudent.getname());
    builder.delete(10,stupidStudent.getname().length());
    builder.append(".jpg");
    String a=builder.toString();
    imageIcon=new ImageIcon(a);
    imageLabel.setIcon((Icon)imageIcon);
    
        } }		
		
	public class MyFrame extends JFrame{
		public MyFrame(){
			setTitle("点名器");
		    setResizable(false);
		    setSize(800,600);
		    label=new JLabel("                                点名器");
		    label.setFont(new Font("Serif",Font.PLAIN,40));
		    add(label,BorderLayout.NORTH);  
		    JLabel  westlabel=new JLabel("                                                                                              ");
		    add(westlabel,BorderLayout.WEST);  
		    imageIcon=new ImageIcon();
		    imageLabel=new JLabel();
		    imageLabel.setIcon((Icon)imageIcon); 
	        add(imageLabel,BorderLayout.CENTER);
		}
		
	}
	
	public class StudentInf{
		private String name;	
		public StudentInf(String n){
			name=n;
		}
		public String getname(){
			return name;
		}
		public StudentInf getnextstudent(StudentInf[] stuinf){
	        int i=(int)(Math.random()*stuinf.length);
	        StudentInf s=stuinf[i];
	        return s;
	    	}      	
	}
	
	public class StudentReader{
		public StudentInf[] ReadStudent() throws IOException{
			 ArrayList<StudentInf> stuList = new ArrayList<StudentInf>(); 
	         Scanner sc = new Scanner(new File("studentname.txt")).useDelimiter("\n"); 
	         while(sc.hasNext()){ 
	            String name = sc.next(); 
	            stuList.add(new StudentInf(name));       
	              }        
	          StudentInf[] Array=new StudentInf[stuList.size()];
	          stuList.toArray(Array);  
	          return Array;  
		}
	}
	
	public static void main(String[] args)throws IOException{
		new NameCallerMachine();
		}
}






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -