📄 namecallermachine.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 + -