public void createPanel() {
		setTitle("Preferences");
		setSize(500, 600);
		setLocationRelativeTo(getParent());
		setIconImage(Images.PREFS_ICON);
		contentPanel.setLayout(null);
		
		lblProjectViewWidth.setBounds(32, 34, 94, 14);
		contentPanel.add(lblProjectViewWidth);
		
		SpinnerModel widthModel = new SpinnerNumberModel(Constants.PROJ_VIEW_MIN_WIDTH, Constants.PROJ_VIEW_MIN_WIDTH, Constants.PROJ_VIEW_MAX_WIDTH, 1);
		pvWidthSpinner.setModel(widthModel);
		pvWidthSpinner.setBounds(32, 52, Constants.SPINNER_WIDTH, 20);
		contentPanel.add(pvWidthSpinner);
		
		lblProjectViewHeight.setBounds(32, 83, 109, 14);
		contentPanel.add(lblProjectViewHeight);
		
		SpinnerModel heightModel = new SpinnerNumberModel(Constants.PROJ_VIEW_MIN_HEIGHT, Constants.PROJ_VIEW_MIN_HEIGHT, Constants.PROJ_VIEW_MAX_HEIGHT, 1);
		pvHeightSpinner.setModel(heightModel);
		pvHeightSpinner.setBounds(32, 98, Constants.SPINNER_WIDTH, 20);
		contentPanel.add(pvHeightSpinner);
		
		lblProjectViewBackground.setBounds(32, 129, 162, 14);
		contentPanel.add(lblProjectViewBackground);
		
		backgroundColor.setBounds(32, 151, 20, 20);
		backgroundColor.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		backgroundColor.setEditable(false);
		contentPanel.add(backgroundColor);
		
		btnBackgroundColor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				curBackColor = JColorChooser.showDialog(Preferences.this, "Chooser Background Color", curBackColor);
				backgroundColor.setBackground(curBackColor);
			}
		});
		btnBackgroundColor.setBounds(62, 148, 114, 23);
		contentPanel.add(btnBackgroundColor);
		
		btnApply.setBounds(370, 490, 89, 23);
		btnApply.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				applyChanges();
			}
		});
		contentPanel.add(btnApply);
		
		lblTableSpeed.setBounds(225, 129, 75, 14);
		contentPanel.add(lblTableSpeed);
		
		lblTableWidth.setBounds(225, 34, 61, 14);
		contentPanel.add(lblTableWidth);
		
		lblTableHeight.setBounds(225, 83, 75, 14);
		contentPanel.add(lblTableHeight);
		
		SpinnerModel speedModel = new SpinnerNumberModel(1, 1, Constants.TABLE_MAX_SPEED, 1);
		tSpeedSpinner.setModel(speedModel);
		tSpeedSpinner.setBounds(225, 148, Constants.SPINNER_WIDTH, 20);
		contentPanel.add(tSpeedSpinner);

		SpinnerModel tHeightModel = new SpinnerNumberModel(0, 0, Constants.TABLE_MAX_HEIGHT, 1);
		tHeightSpinner.setBounds(225, 98, 75, 20);
		tHeightSpinner.setModel(tHeightModel);
		contentPanel.add(tHeightSpinner);
		
		SpinnerModel tWidthModel = new SpinnerNumberModel(0, 0, Constants.TABLE_MAX_WIDTH, 1);
		tWidthSpinner.setBounds(225, 52, Constants.SPINNER_WIDTH, 20);
		tWidthSpinner.setModel(tWidthModel);
		contentPanel.add(tWidthSpinner);
		
		okButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				applyChanges();
				dispose();
			}
		});
		
		cancelButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		
		setBackgroundColor(Constants.BACKGROUND);
		setFontColor(Constants.FONT_COLOR);
	}