import java.awt.*; import javax.swing.*; import javax.swing.border.*; import java.awt.event.*; import java.beans.*; import javax.swing.JList.*; /** * Write a description of class ClassWindow here. * * @author (your name) * @version (a version number or a date) */ public class ClassWindow { // instance variables - replace the example below with your own private JFrame frame; private JLabel classNameLabel; private JLabel statusLabel; private JButton addTeacherButton; private JButton enrollButton; private JButton setTimeButton; private JButton setRoomButton; private JButton setCapacityButton; private boolean debug = true; private LabClass labClass = new LabClass(5); /** * Constructor for objects of class ClassWindow */ public ClassWindow() { // initialise instance variables makeFrame(); } private void makeFrame() { frame = new JFrame("Class System"); JPanel contentPane = (JPanel) frame.getContentPane(); contentPane.setBorder(new EmptyBorder(10, 10, 10, 10)); contentPane.setLayout(new BorderLayout(5, 5)); classNameLabel = new JLabel(); contentPane.add(classNameLabel, BorderLayout.NORTH); statusLabel = new JLabel(); contentPane.add(statusLabel, BorderLayout.SOUTH); JPanel toolbar = new JPanel(); contentPane.add(toolbar, BorderLayout.WEST); toolbar.setLayout(new GridLayout(0, 1)); toolbar.setBorder(new EtchedBorder()); makeButtons(toolbar); showClassName(labClass); makeMenuBar(frame); frame.pack(); frame.setVisible(true); } private void makeButtons(JPanel toolbar) { enrollButton = new JButton("Enroll student"); enrollButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enrollStudent(); } }); toolbar.add(enrollButton); addTeacherButton = new JButton("Add teacher"); addTeacherButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addTeacher(); } }); toolbar.add(addTeacherButton); setCapacityButton = new JButton("Set class capacity"); setCapacityButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setCapacity(); } }); toolbar.add(setCapacityButton); setTimeButton = new JButton("Set day and time"); setTimeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setTime(); } }); toolbar.add(setTimeButton); setRoomButton = new JButton("Set room"); setRoomButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setRoom(); } }); toolbar.add(setRoomButton); } private void makeMenuBar(JFrame frame) { JMenuBar menubar = new JMenuBar(); frame.setJMenuBar(menubar); JMenu menu; JMenuItem item; menu = new JMenu("Class"); menubar.add(menu); item = new JMenuItem("New class..."); menu.add(item); item = new JMenuItem("Open class..."); menu.add(item); menu = new JMenu("Student"); menubar.add(menu); item = new JMenuItem("New student..."); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { newStudent(); } }); menu.add(item); item = new JMenuItem("Enroll student"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { enrollStudent(); } }); menu.add(item); item = new JMenuItem("Remove student"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { removeStudent(); } }); menu.add(item); menu = new JMenu("Teacher"); menubar.add(menu); item = new JMenuItem("New teacher"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { newTeacher(); } }); menu.add(item); item = new JMenuItem("Add teacher"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addTeacher(); } }); menu.add(item); item = new JMenuItem("Remove teacher"); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { removeTeacher(); } }); menu.add(item); menu = new JMenu("Room"); menubar.add(menu); item = new JMenuItem("Set room..."); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setRoom(); } }); menu.add(item); menu = new JMenu("Schedule"); menubar.add(menu); item = new JMenuItem("Set time..."); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setTime(); } }); menu.add(item); } /** private List makeList() { JList list = new JList(); //data has type Object[] list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); list.setLayoutOrientation(JList.VERTICAL); list.setVisibleRowCount(10); return list; JScrollPane listScroller = new JScrollPane(list); listScroller.setPreferredSize(new Dimension(250, 80)); return list; }*/ private void showStatus(String text) { statusLabel.setText(text); } private void showClassName(LabClass labClass) { if(debug != false) { classNameLabel.setText("ClassNameLabel working."); } else { classNameLabel.setText(labClass.getClassName()); } } private void newStudent() { JOptionPane newStudentDialog = new JOptionPane(); String newStudent = newStudentDialog.showInputDialog(null, "Please enter student name:", "Create new student", 1); String newStudentID = newStudentDialog.showInputDialog(null, "Please enter student ID:", "Create new student", 1); if(newStudent != null) { if(newStudent.length() < 6) { if(debug != false) { System.out.println("Student " + newStudent + ", ID " + newStudentID + " created."); } Student student = new Student(newStudent, newStudentID); labClass.enrollStudent(student); } else { newStudentDialog.showMessageDialog(null, "Student name has to be at least 6 characters", "Enter valid student name", 1); } } else { newStudentDialog.showMessageDialog(null, "You have to enter a valid student name", "Enter valid student name", 1); } } private void simpleEnrollStudent(Student student) { JOptionPane enrollStudentDialog = new JOptionPane(); enrollStudentDialog.showConfirmDialog(null, "Enroll student in class?", "Enroll student", 2); } private void enrollStudent() { //labClass.printStudents(); if(debug != false) { showStatus("EnrollStudent button clicked."); } } private void removeStudent() { } private void newTeacher() { JOptionPane newTeacherDialog = new JOptionPane(); String newTeacher = newTeacherDialog.showInputDialog(null, "Please enter teacher name", "Create new teacher", 1); String newTeacherID = newTeacherDialog.showInputDialog(null, "Please enter teacher ID", "Create new teacher", 1); Teacher teacher = new Teacher(newTeacher, newTeacherID); labClass.addTeacher(teacher); } private void addTeacher() { if(debug != false) { showStatus("AddTeacher button clicked."); } } private void removeTeacher() { labClass.removeTeacher(); } private void setCapacity() { JOptionPane setCapacityDialog = new JOptionPane(); String newCapacity = setCapacityDialog.showInputDialog(null, "Please enter new capacity", "Set class capacity",1); int newCapacityInt = Integer.parseInt(newCapacity); labClass.setCapacity(newCapacityInt); } private void setRoom() { JOptionPane setRoomDialog = new JOptionPane(); String newRoom = setRoomDialog.showInputDialog(null, "Please enter new room", "Set class room", 2); labClass.setRoom(newRoom); } private void setTime() { JOptionPane setTimeDialog = new JOptionPane(); String newTime = setTimeDialog.showInputDialog(null, "Please enter new time in \n the following format: 'Day, HH:MM'", "Set class time", 1); labClass.setTime(newTime); } }