public void createPanel() {
		setTitle("Global Preferences");
		setSize(500, 600);
		setLocationRelativeTo(getParent());
		setIconImage(Images.G_PREFS_ICON);
		contentPanel.setLayout(null);
		
		FileNameExtensionFilter ff = new FileNameExtensionFilter("Image files *(.jpg, .jpeg, .gif, .png)", "jpg", "jpeg", "gif", "png");
		imgChooser.setFileFilter(ff);		
		
		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);
		
		lblDefaultTableColor.setBounds(32, 129, 109, 14);
		contentPanel.add(lblDefaultTableColor);
		
		tableColor.setBounds(32, 148, 20, 20);
		tableColor.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		tableColor.setEditable(false);
		contentPanel.add(tableColor);
		
		btnChooseTableColor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				curTableColor = JColorChooser.showDialog(GlobalPreferences.this, "Choose Table Color", curTableColor);
				tableColor.setBackground(curTableColor);
			}
		});
		btnChooseTableColor.setBounds(62, 148, 114, 23);
		contentPanel.add(btnChooseTableColor);
		
		lblProjectViewBackground.setBounds(32, 179, 162, 14);
		contentPanel.add(lblProjectViewBackground);
		
		backgroundColor.setBounds(32, 201, 20, 20);
		backgroundColor.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		backgroundColor.setEditable(false);
		contentPanel.add(backgroundColor);
		
		btnBackgroundColor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				curPVBackColor = JColorChooser.showDialog(GlobalPreferences.this, "Chooser Background Color", curPVBackColor);
				backgroundColor.setBackground(curPVBackColor);
			}
		});
		btnBackgroundColor.setBounds(62, 198, 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);
		
		lblMainFontColor.setBounds(32, 281, 94, 14);
		contentPanel.add(lblMainFontColor);
		
		fontColor.setEditable(false);
		fontColor.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		fontColor.setBounds(32, 301, 20, 20);
		contentPanel.add(fontColor);
		
		btnFontColor.setBackground(new Color(50, 50, 50));
		btnFontColor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				curFontColor = JColorChooser.showDialog(GlobalPreferences.this, "Choose Table Color", curTableColor);
				fontColor.setBackground(curFontColor);
			}
		});
		btnFontColor.setBounds(62, 298, 114, 23);
		contentPanel.add(btnFontColor);
		
		backColor.setEditable(false);
		backColor.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		backColor.setBounds(32, 351, 20, 20);
		contentPanel.add(backColor);
		
		btnBackColor.setBackground(new Color(50, 50, 50));
		btnBackColor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				curBackColor = JColorChooser.showDialog(GlobalPreferences.this, "Choose Table Color", curTableColor);
				backColor.setBackground(curBackColor);
			}
		});
		btnBackColor.setBounds(62, 348, 114, 23);
		contentPanel.add(btnBackColor);
		
		lblMainBackgroundColor.setBounds(32, 332, 120, 14);
		contentPanel.add(lblMainBackgroundColor);
		
		boxShowInfo.setBounds(29, 378, 188, 23);
		contentPanel.add(boxShowInfo);
		
		lblTableImage.setBounds(225, 281, 75, 14);
		contentPanel.add(lblTableImage);
		
		lblImage.setBounds(225, 336, 229, 128);
		contentPanel.add(lblImage);
		
		btnChooseImage.setBounds(297, 277, 128, 23);
		btnChooseImage.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(imgChooser.showDialog(GlobalPreferences.this, "Open") == JFileChooser.APPROVE_OPTION) {
					File imgFile = imgChooser.getSelectedFile();
					String f = imgFile.getName();
					
					if(!(f.endsWith(".jpg") || f.endsWith(".jpeg") || f.endsWith(".png") || f.endsWith(".gif"))) {
						JOptionPane.showMessageDialog(GlobalPreferences.this, "File must be valid image file.\n*(.jpg, .jpeg, .png, .gif)");
					} else {
						ProjectView.TABLE_IMAGE = Util.getImage(imgFile);
						ProjectView.TABLE_IMAGE_LOC = imgFile.getAbsolutePath();
						lblImage.setIcon(new ImageIcon(ProjectView.TABLE_IMAGE));
					}
				}
			}
		});
		contentPanel.add(btnChooseImage);
		
		btnUseDefault.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ProjectView.TABLE_IMAGE_LOC = "Default";
				ProjectView.TABLE_IMAGE = Images.TABLE_IMAGE;
				lblImage.setIcon(new ImageIcon(ProjectView.TABLE_IMAGE));
			}
		});
		btnUseDefault.setBounds(297, 302, 128, 23);
		
		contentPanel.add(btnUseDefault);
		
		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);
	}