public StudentInfoEditor(StudentsListTab window, Student student)
	{
		this.window = window;
		this.student = student;
		this.setTitle(student.getFirstName() + " " + student.getLastName());
		
		this.tabs = new JTabbedPane();
		
		this.avoidingTable = makeTable(student);
		this.scrollbar = new JScrollPane(this.avoidingTable);
		
		
		/*
		 * Separation Tab
		 */
		JPanel buttonsPane = new JPanel(new FlowLayout(FlowLayout.RIGHT));
		JButton newStudentButton = new JButton("New");
		newStudentButton.setActionCommand("New Student");
		newStudentButton.addActionListener(this);
		buttonsPane.add(newStudentButton);

		JButton delStudentButton = new JButton("Delete");
		delStudentButton.setActionCommand("Delete Student");
		delStudentButton.addActionListener(this);
		buttonsPane.add(delStudentButton);
	
		JPanel separationPanel = new JPanel(new BorderLayout());
		separationPanel.add(scrollbar, BorderLayout.CENTER);
		separationPanel.add(buttonsPane, BorderLayout.PAGE_END);
		
		/*
		 * Information Editing Tab contents
		 */
		
		/*
		 * Name and student ID text fields for setting those of a student.
		 */
		JPanel studentIDSetter = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JLabel studentIDLabel = new JLabel("Student ID: ");
		this.studentIDField = new JTextField(Integer.toString(student.getStudentID()));
		this.studentIDField.setColumns(5);
		studentIDSetter.add(studentIDLabel);
		studentIDSetter.add(studentIDField);
		
		JPanel firstNameSetter = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JLabel firstNameLabel = new JLabel("First: ");
		this.firstNameField = new JTextField(student.getFirstName());
		this.firstNameField.setColumns(8);
		firstNameSetter.add(firstNameLabel);
		firstNameSetter.add(firstNameField);
		
		JPanel lastNameSetter = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JLabel lastNameLabel = new JLabel("Last: ");
		this.lastNameField = new JTextField(student.getLastName());
		this.lastNameField.setColumns(8);
		lastNameSetter.add(lastNameLabel);
		lastNameSetter.add(lastNameField);
		
		/*
		 * Box to force assigned seating
		 */
		JPanel assignedSeatSetter = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JLabel assignedSeatLabel = new JLabel("Assigned Seat");
		this.assignedSeatField = new JTextField();
		for (int i = 0; i < 3; i++) {
			for (int j = 0; j < this.window.currentClass.getQuadrants().get(i).getSize(); j++) {
				Desk desk = this.window.currentClass.getQuadrants().get(i).getDesk(j);
				if (desk.isEditable() == false && desk.getOccupyingStudent().equals(student)) {
					switch (i) {
						case 0:
							this.assignedSeatField = new JTextField(Integer.toString(j+1));
							break;
						case 1:
							this.assignedSeatField = new JTextField(Integer.toString(j+11));
							break;
						case 2:
							this.assignedSeatField = new JTextField(Integer.toString(j+23));
							break;
					}
				}
			}
		}
		this.assignedSeatField.setColumns(2);
		assignedSeatSetter.add(assignedSeatLabel);
		assignedSeatSetter.add(assignedSeatField);
		
		/*
		 * Box to set the race of a student.
		 */
		JPanel raceSetter = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JLabel raceNameLabel = new JLabel("Race: ");
		this.raceSelection = new JComboBox<String>(new String[] { "White", "Asian", "AfricanAmerican", "Latino", "PacificIslander", "Other"});
		this.raceSelection.setSelectedItem(student.getRace().toString());
		raceSetter.add(raceNameLabel);
		raceSetter.add(raceSelection);
		
		/*
		 * Box to set the Gender of a student
		 */
		JPanel genderSetter = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JLabel genderLabel = new JLabel("Gender: ");
		this.genderSelection = new JComboBox<String>(new String[] { "Male", "Female", "Other" });
		this.genderSelection.setSelectedItem(student.getGender().toString());
		genderSetter.add(genderLabel);
		genderSetter.add(genderSelection);
		
		/*
		 * Bottom button pane with save/cancel buttons
		 */
		JPanel buttonPane = new JPanel(new FlowLayout(FlowLayout.LEFT));
		JButton saveChanges = new JButton("Save");
		saveChanges.addActionListener(this);
		saveChanges.setActionCommand("Save");
		
		JButton cancelChanges = new JButton("Cancel");
		cancelChanges.addActionListener(this);
		cancelChanges.setActionCommand("Cancel");
		
		buttonPane.add(saveChanges);
		buttonPane.add(cancelChanges);
		
		JPanel comboboxPane = new JPanel(new FlowLayout(FlowLayout.LEFT));
		comboboxPane.add(genderSetter);
		JPanel informationPanel = new JPanel();
		informationPanel.setLayout(new GridLayout(5, 2));
		informationPanel.add(studentIDSetter);
		informationPanel.add(assignedSeatSetter);
		informationPanel.add(firstNameSetter);
		informationPanel.add(lastNameSetter);
		informationPanel.add(genderSetter);
		informationPanel.add(raceSetter);
		informationPanel.add(new JPanel());
		informationPanel.add(buttonPane);
		
		tabs.addTab("Information", null, informationPanel);;
		tabs.addTab("Separation", null, separationPanel);
	
		this.add(tabs, BorderLayout.CENTER);
		
		this.setResizable(false);
		this.setSize(400, 320);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
	}