private void showStudent(int index) {
		
		final Student student = this.students[index];
		
		// remove all previous entries in the fields list
		this.fields.clear();
		// Remove all previous Components from the panel
		this.studentInfoPanel.removeAll();
		this.studentInfoPanel.setLayout(new BorderLayout());
		
		/* name and graduate type panel */
		
		JPanel namePanel = new JPanel();
		namePanel.setLayout(new BoxLayout(namePanel, BoxLayout.X_AXIS));

		// The students name, in large Font
		JLabel nameLabel = new JLabel(student.getName());
		nameLabel.setFont( nameLabel.getFont().deriveFont(24f) );

		// Shows whether the Student is an Undergrad or Postgrad
		// If the Student is Postgrad, (Master) or (PHD) will be show
		String gradType = student.getClass().getSimpleName();
		if (student instanceof Postgrad) gradType += " (" + ((Postgrad) student).getDegree() + ")";
		JLabel gradLabel = new JLabel(gradType);
		gradLabel.setFont( gradLabel.getFont().deriveFont(16f));
		gradLabel.setForeground(Color.GRAY);

		
		// Force the window to redraw itself to reflect the new changes
		namePanel.add(nameLabel);
		namePanel.add(Box.createHorizontalStrut(10));
		namePanel.add(gradLabel);
				
		/* University choice panel */
		
		JPanel universityPanel = new JPanel();
		universityPanel.setLayout(new GridLayout(3,1));
		
		/*Iterator<String> it = student.getUniversities().keySet().iterator();
		while (it.hasNext()) {*/
		
		String[] universities = student.getUniversities();
		for (int i = 0; i < universities.length; i++) {
			
			String university = universities[i];//it.next();
			boolean accepted = student.getUniversitiesAccept()[i]; //student.getUniversities().get(university);
			
			JPanel p = new JPanel();
			p.setBorder(BorderFactory.createTitledBorder(
					BorderFactory.createEtchedBorder(), 
					university
			));
			p.setLayout(new GridLayout( 2, 1 ));
			
			ButtonGroup group = new ButtonGroup();
			JRadioButton accept = new JRadioButton(ACCEPT);
			accept.setActionCommand(ACCEPT);
			JRadioButton reject = new JRadioButton(REJECT);
			reject.setActionCommand(REJECT);

						
			group.add(accept);
			group.add(reject);
			this.fields.put(group, university);
			
			if (accepted) 	accept.setSelected(true); 
			else 			reject.setSelected(true);
			
			p.add(accept);
			p.add(reject);
			
			universityPanel.add(p);
			
		}
		
		/* submit button */
		JButton submit = new JButton( SUBMIT );
		submit.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				
				Iterator<Entry<ButtonGroup, String>> it = AdmitPanel.this.fields.entrySet().iterator();
				while (it.hasNext()) {
					
					Entry<ButtonGroup, String> entry = it.next();
					entry.getKey().getSelection().getActionCommand();
					
					student.addUniversity(entry.getValue(), ACCEPT.equals(entry.getKey().getSelection().getActionCommand()));
					//AdmitPanel.this.students[ AdmitPanel.this.currentStudent ] = s;

				}
				
				for (ChangeListener l : AdmitPanel.this.listeners) {
					l.stateChanged(new ChangeEvent( AdmitPanel.this ));
				}
			}
			
		});
		
		// add everything to the panel
		this.studentInfoPanel.add( namePanel, 		BorderLayout.NORTH );
		this.studentInfoPanel.add( universityPanel, BorderLayout.CENTER );		
		this.studentInfoPanel.add( submit, 			BorderLayout.SOUTH );		

		// force a redraw of the screen
		this.revalidate();
		this.repaint();
	}