private void createItemTable() {
		
		MouseAdapter mouseListener = new MouseAdapter() {
			
			@Override
			public void mousePressed(MouseEvent e) {
				handleMouseEvent(e);
			}
			
			@Override
			public void mouseReleased(MouseEvent e) {
				handleMouseEvent(e);
			}
			
			private void handleMouseEvent(MouseEvent e) {
		 		if (eventsAreDisabled()) {
					return;
				}
				if (e.getSource() == _itemTable) {
					if (e.isPopupTrigger()) {
						enableItemMenuItems();
						_itemMenu.show(e.getComponent(), e.getX(), e.getY());
					}
				}
				else if (e.getSource() == _itemTableHeader) {
					if (e.isPopupTrigger()) {
						enableItemMenuItems();
						_itemMenu.show(e.getComponent(), e.getX(), e.getY());
					}
//					else if (e.getButton() == MouseEvent.BUTTON1 &&
//							e.getID() == MouseEvent.MOUSE_PRESSED) {
//						int clickedColumnIndex = 
//							commentsColumnModel.getColumnIndexAtX(e.getX());
//						if (clickedColumnIndex >= 0) {
//							updateCommentSortOrder(clickedColumnIndex);
//						}
//					}
				}
			}
		};
		
		_itemTableColumnModel = new DefaultTableColumnModel();
		TableColumn column = createTableColumn(0, "Entry Date", ContentFontSize);
		_itemTableColumnModel.addColumn(column);
		column = createTableColumn(1, "Expiration Date", ContentFontSize);
		_itemTableColumnModel.addColumn(column);
		column = createTableColumn(2, "Item Barcode", ContentFontSize);
		_itemTableColumnModel.addColumn(column);
		column = createTableColumn(3, "Storage Unit", ContentFontSize);
		_itemTableColumnModel.addColumn(column);
		column = createTableColumn(4, "Product Group", ContentFontSize);
		_itemTableColumnModel.addColumn(column);
		
		_itemTableModel = new DefaultTableModel(0, 5) {
			public boolean isCellEditable(int row, int column) {
				return false;
			}
		};
		
		_itemTable = new JTable(_itemTableModel, _itemTableColumnModel);
		_itemTable.setDragEnabled(true);
		_itemTable.setTransferHandler(new ItemTransferHandler());
		_itemTable.setFont(createFont(_itemTable.getFont(), ContentFontSize));
		_itemTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		_itemTable.getSelectionModel().addListSelectionListener(
				new ListSelectionListener() {
					public void valueChanged(ListSelectionEvent evt) {
						if (eventsAreDisabled()) {
							return;
						}
						if (evt.getValueIsAdjusting()) {
							return;
						}
						getController().itemSelectionChanged();
					}
				});
		_itemTable.addMouseListener(mouseListener);
		
		_itemTableHeader = _itemTable.getTableHeader();
		_itemTableHeader.setReorderingAllowed(false);
		_itemTableHeader.addMouseListener(mouseListener);
		
		_itemTableScrollPane = new JScrollPane(_itemTable, 
									JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, 
									JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		_itemTableScrollPane.setPreferredSize(new Dimension(600, 300));
		_itemTableScrollPane.setBorder(createTitledBorder("Items", BorderFontSize));

		ActionListener actionListener = new ActionListener() {
			public void actionPerformed(ActionEvent evt) {
				if (evt.getSource() == _editItemMenuItem) {
					editItem();
				}
				else if (evt.getSource() == _removeItemMenuItem) {
					removeItem();
				}
			}
		};

		_itemMenu = new JPopupMenu();
		_editItemMenuItem = new JMenuItem("Edit Item");
		_editItemMenuItem.addActionListener(actionListener);
		_itemMenu.add(_editItemMenuItem);
		_removeItemMenuItem = new JMenuItem("Remove Item");
		_removeItemMenuItem.addActionListener(actionListener);
		_itemMenu.add(_removeItemMenuItem);
	}