void jbInit() throws Exception {
		this.contentPane = (JPanel) this.getContentPane();
		this.contentPane.setLayout(this.gridBagLayout2);

		this.setDefaultCloseOperation(0);
		this.setJMenuBar(this.menuBar);

		this.setSize(new Dimension(759, 553));
		this.setTitle("Truth Table Editor");

		JComboBox<String> inPinBox = new JComboBox<String>();
		inPinBox.addItem("0");
		JComboBox<String> outPinBox = new JComboBox<String>();
		for (int i = 0; i < OUT_MAX; i++) {
			outPinBox.addItem(String.valueOf(i + 1));
		}
		for (int i = 0; i < IN_MAX; i++) {
			inPinBox.addItem(String.valueOf(i + 1));
		}

		JOptionPane.showOptionDialog(this, "Please state the number of input pins and output pins required\n ", "Truth Table Editor", 2, 3, null, new Object[] { new JLabel("Input Pins"), inPinBox, new JLabel("OutputPins"), outPinBox, "Continue" }, "1");

		this.inPinNumber = Integer.parseInt((String) inPinBox.getSelectedItem());
		this.outPinNumber = Integer.parseInt((String) outPinBox.getSelectedItem());

		this.truthTable = new TruthTable(this.inPinNumber, this.outPinNumber);

		this.jPanel1.setBorder(null);
		this.jPanel1.setLayout(this.borderLayout2);
		this.tableFrame.setBorder(BorderFactory.createLoweredBevelBorder());
		this.propertiesPanel.setBorder(BorderFactory.createLoweredBevelBorder());
		this.jPanel2.setBorder(BorderFactory.createLoweredBevelBorder());
		this.jPanel2.setLayout(this.gridBagLayout1);
		this.lblStatus.setText("Click on output pin cells to toggle values. Double-click column headers to change pin labels.");

		this.contentPane.add(this.propertiesPanel, new GridBagConstraints(0, 1, 1, 1, 1.0D, 0.0D, 10, 1, new Insets(0, 6, 0, 11), 741, 99));

		this.contentPane.add(this.jPanel1, new GridBagConstraints(0, 0, 1, 1, 1.0D, 1.0D, 10, 1, new Insets(10, 6, 0, 11), 288, -17));

		this.jPanel1.add(this.tableFrame, "Center");
		this.contentPane.add(this.jPanel2, new GridBagConstraints(0, 2, 1, 1, 1.0D, 0.0D, 10, 1, new Insets(0, 6, 14, 11), 0, 0));

		this.jPanel2.add(this.lblStatus, new GridBagConstraints(0, 0, 1, 1, 0.0D, 0.0D, 17, 0, new Insets(0, 0, 1, 0), 156, 0));

		this.tableFrame.getViewport().add(this.truthTable, null);

		this.jMenuBar1.getSaveMenuItem().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
				TruthTableFrame.this.createChipFile();
			}
		});
		this.jMenuBar1.getExitMenuItem().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
				TruthTableFrame.this.exitAction();
			}
		});
		this.jMenuBar1.getNewMenuItem().addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
				try {
					if (JOptionPane.showConfirmDialog(null, "Are you sure you want to close this table?\nAll unsaved work will be lost", "New Table", 0, 1) == 0) {
						TruthTableFrame.this.closeWindow();
						TruthTableFrame newFrame = new TruthTableFrame(TruthTableFrame.this.inApplet);

						Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
						Dimension frameSize = newFrame.getSize();
						if (frameSize.height > screenSize.height) {
							frameSize.height = screenSize.height;
						}
						if (frameSize.width > screenSize.width) {
							frameSize.width = screenSize.width;
						}
						newFrame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
						newFrame.setVisible(true);
					}
				} catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		});
	}