/*Ihsan * StudentGUI.java (GUI, and file reading only) * Input (well, set path to) a .txt file * Processes how to display all the names on the JTextArea; * Outputs the GUI, and student names; */ import java.io.*; import java.util.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; class Student { String fName; String lName; int grade; } public class StudentGui2 extends JFrame implements ActionListener { JTextArea studentsOut; JLabel jl_fName,jl_lName, jl_mName, jl_grade, jl_blank; JTextField jt_fName,jt_lName,jt_mName, jt_grade,jt_editStudentRecNumber; JPanel jp_right,jp_editStudent; JButton jb_addStudent,jb_editStudent; StringTokenizer token; String firstName; String midName; String lastName; String fileName = "students.txt"; int grade; Vector students = new Vector(); public StudentGui2() //CONSTRUCTOR { setTitle("View, Enter and Edit Students"); studentsOut = new JTextArea(150, 20); studentsOut.setEditable(false); jp_right=new JPanel(); jp_right.setLayout(new BoxLayout(jp_right,BoxLayout.Y_AXIS)); jp_editStudent=new JPanel(); jp_editStudent.setLayout(new BoxLayout(jp_editStudent,BoxLayout.X_AXIS)); //LABEL ASSIGNMENTS jl_fName = new JLabel ("First Name"); jl_lName = new JLabel ("Last Name"); jl_mName = new JLabel ("Middle Name"); jl_grade = new JLabel ("Grade"); //jl_blank, not used yet //TEXT FIELD DETAILS jt_fName=new JTextField(10); jt_lName = new JTextField (10); jt_mName = new JTextField (10); jt_grade = new JTextField (2); jt_editStudentRecNumber = new JTextField (20); //BuTTON ASSIGNMENTS jb_addStudent=new JButton("Add Student"); jb_addStudent.addActionListener(this); jb_addStudent.setActionCommand("add"); jb_editStudent = new JButton ("Edit Student"); jb_editStudent.addActionListener(this); jb_editStudent.setActionCommand("remove"); //PANEL ASSIGNMENTS jp_right.add(jl_fName); jp_right.add(jt_fName); jp_right.add(jl_mName); jp_right.add(jt_mName); jp_right.add(jl_lName); jp_right.add(jt_lName); jp_right.add(jl_grade); jp_right.add(jt_grade); jp_right.add(jb_addStudent); jp_editStudent.add(jt_editStudentRecNumber); jp_editStudent.add(jb_editStudent); jp_right.add(jp_editStudent); getContentPane().setLayout(new BoxLayout(getContentPane(),BoxLayout.X_AXIS)); getContentPane().add(studentsOut); getContentPane().add(jp_right); } public void actionPerformed(ActionEvent evt) {} //Blank for now //this is a new method in StudentGui; make sure you call it (probably from main()); public boolean readStudents() { Student newStudent,demoStudent; try { BufferedReader inFile = new BufferedReader (new FileReader("students2.txt")); String line; line = inFile.readLine(); while(line != null) { System.out.println("One time through"); newStudent=new Student(); token = new StringTokenizer(line, ";");//string tokenizer System.out.println("The token is: " + token); newStudent.fName = token.nextToken(); System.out.println("The token is: " + newStudent.fName); newStudent.lName = token.nextToken(); newStudent.grade = Integer.parseInt(token.nextToken()); System.out.println(newStudent.fName + " " + newStudent.lName + " " + newStudent.grade); students.add(newStudent); line = inFile.readLine(); } inFile.close(); } catch(IOException e) { System.out.println("Error reading file."); return false; } demoStudent=(Student)students.get(0); System.out.println("result" + demoStudent.lName); //demo of how to get the last name of the 2nd(!) person from the vector list /*for (int i = 0;i < studentsFName.size();i++) { studentsOut.append((String)studentsFName.elementAt(i)); studentsOut.append(", "); studentsOut.append((String)studentsMName.elementAt(i)); studentsOut.append(", "); studentsOut.append((String)studentsLName.elementAt(i)); studentsOut.append(", "); studentsOut.append(studentsGrade.elementAt(i).toString()); studentsOut.append("\n"); }*/ return true; } public static void main (String[] args) { StudentGui2 student1= new StudentGui2(); student1.setSize(500, 300); student1.setResizable(false); student1.setVisible(true); student1.readStudents(); student1.setDefaultCloseOperation(EXIT_ON_CLOSE); } }