import java.awt.*; import java.awt.event.*; import java.io.*; public class StudentInformation implements ActionListener { Frame mainFrame; Frame inputFrame; Frame searchFrame; TextArea stuInfo; Label lb[] = new Label[9]; Label lb2[] = new Label[2]; TextField tf[] = new TextField[9]; TextField tf2[] = new TextField[2]; Button btn[] = new Button[3]; Button btn2[] = new Button[2]; Panel p1, p2, p3, p4; IOOperation ioo; Student stu; Student student[] = new Student[100]; public StudentInformation() { /** * set mainframe */ mainFrame = new Frame("Student Information"); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); MenuItem item1 = new MenuItem("Record"); MenuItem item2 = new MenuItem("Search"); MenuItem item3 = new MenuItem("Modify"); MenuItem item4 = new MenuItem("Exit"); MenuItem item5 = new MenuItem("About"); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this); item5.addActionListener(this); Menu menu1 = new Menu("File"); menu1.add(item1); menu1.add(item2); menu1.add(item3); menu1.addSeparator(); menu1.add(item4); Menu menu2 = new Menu("Help"); menu2.add(item5); MenuBar mb = new MenuBar(); mb.add(menu1); mb.add(menu2); mainFrame.setMenuBar(mb); stuInfo = new TextArea(); stuInfo.setFont(new Font("serif", Font.PLAIN, 18)); mainFrame.add(stuInfo); mainFrame.setSize(400, 250); mainFrame.setLocation(200, 100); mainFrame.setVisible(true); /** * set inputFrame which is used to record student information */ inputFrame = new Frame(); inputFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { inputFrame.setVisible(false); } }); p1 = new Panel(new GridLayout(9, 2)); p2 = new Panel(); String lbname[] = {"Code:", "Name:", "Sex:", "BirthPlace:", "Class:", "Chinese:", "Math:", "English:", "TotalScore:"}; String btnname[] = {"Save", "Delete", " Exit "}; for(int i=0; i<9; i++) { lb[i] = new Label(lbname[i]); tf[i] = new TextField(15); p1.add(lb[i]); p1.add(tf[i]); } for(int i=0; i<3; i++) { btn[i] = new Button(btnname[i]); btn[i].addActionListener(this); p2.add(btn[i]); } btn[2].setActionCommand("input"); inputFrame.add(p1, BorderLayout.CENTER); inputFrame.add(p2, BorderLayout.SOUTH); inputFrame.pack(); inputFrame.setLocationRelativeTo(mainFrame); /** * set searchFrame which is used to search student information */ searchFrame = new Frame("Search student"); searchFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { searchFrame.setVisible(false); } }); p3 = new Panel(new GridLayout(2, 2)); p4 = new Panel(); String lbname2[] = {"Code:", "Name:"}; String btnname2[] = {"Search", " Exit "}; for(int i=0; i<2; i++) { lb2[i] = new Label(lbname2[i]); tf2[i] = new TextField(15); p3.add(lb2[i]); p3.add(tf2[i]); } for(int i=0; i<2; i++) { btn2[i] = new Button(btnname2[i]); btn2[i].addActionListener(this); p4.add(btn2[i]); } btn2[1].setActionCommand("search"); searchFrame.add(p3, BorderLayout.CENTER); searchFrame.add(p4, BorderLayout.SOUTH); searchFrame.pack(); searchFrame.setLocationRelativeTo(mainFrame); /** * IO operation object */ ioo = new IOOperation(); student = ioo.getAllStudent(); } public void actionPerformed(ActionEvent e) { /** * MenuItem action */ if (e.getSource() instanceof MenuItem) { MenuItem mi = (MenuItem) e.getSource(); if (mi.getLabel().equals("Record")) { inputFrame.setTitle("Record"); for(int i=0; i<9; i++) tf[i].setText(""); p2.remove(btn[1]); btn[0].setActionCommand("input"); inputFrame.setVisible(true); } else if (mi.getLabel().equals("Search")) { searchFrame.setVisible(true); } else if (mi.getLabel().equals("Modify")) { inputFrame.setTitle("Modify"); if(stu != null) { tf[0].setText(stu.getCode()); tf[1].setText(stu.getName()); tf[2].setText(stu.getSex()); tf[3].setText(stu.getBirthPlace()); tf[4].setText(stu.getStuClass()); tf[5].setText(stu.getChinese() + ""); tf[6].setText(stu.getMath() + ""); tf[7].setText(stu.getEnglish() + ""); tf[8].setText(stu.getTotalScore() + ""); } p2.remove(btn[2]); p2.add(btn[1]); p2.add(btn[2]); btn[0].setActionCommand("modify"); inputFrame.setVisible(true); } else if (mi.getLabel().equals("Exit")) System.exit(0); else if (mi.getLabel().equals("About")) { final Dialog progInfo = new Dialog(mainFrame, "ProgInfo", true); progInfo.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { progInfo.dispose(); } }); progInfo.setLayout(new FlowLayout()); Label l = new Label("Student Information System"); progInfo.add(l); progInfo.setSize(200, 80); progInfo.setLocationRelativeTo(mainFrame); progInfo.setVisible(true); } } /** * Button action */ else { Button btn = (Button)e.getSource(); if(btn.getLabel().equals("Save")) { if(!tf[0].getText().equals("") && !tf[1].getText().equals("") && !tf[2].getText().equals("") && !tf[3].getText().equals("") && !tf[4].getText().equals("") && !tf[5].getText().equals("") && !tf[6].getText().equals("") && !tf[7].getText().equals("") && !tf[8].getText().equals("")) { Student s = new Student(tf[0].getText(), tf[1].getText(), tf[2].getText(), tf[3].getText(), tf[4].getText(), Integer.parseInt(tf[5].getText()), Integer.parseInt(tf[6].getText()), Integer.parseInt(tf[7].getText()), Integer.parseInt(tf[8].getText())); if(btn.getActionCommand().equals("input")) { for(int i=0; iindex && i 0) { FileInputStream fis = new FileInputStream(file); ObjectInputStream ois = new ObjectInputStream(fis); ss = (Student[]) ois.readObject(); ois.close(); fis.close(); } } catch(Exception e) { e.printStackTrace(); } return ss; } }