private void initGUI() {
		try {

		final GridBagLayout gridBag = new GridBagLayout();
		final GridBagConstraints c = new GridBagConstraints();
		c.fill = GridBagConstraints.BOTH;
		
		mainPanel.setLayout(gridBag);
		getContentPane().add(mainPanel, BorderLayout.CENTER);
		mainPanel.setBorder(BorderFactory.createTitledBorder("Hydrometer Adjustment Tool"));
		this.setTitle("Hydrometer Tool");
		this.setSize(258, 294);
		mainPanel.setPreferredSize(new java.awt.Dimension(250, 235));

		// Set temp units text
		tempUnits1.setText(" " + opts.getProperty("optMashTempU"));
		tempUnits2.setText(" " + opts.getProperty("optMashTempU"));

		// First Line	
		{
			mainPanel.add(lMeasuredGravity, c);
			lMeasuredGravity.setText("Measured Gravity: ");

			mainPanel.add(measuredGravity, c);
			measuredGravity.setText("1.040");
			measuredGravity.setPreferredSize(new java.awt.Dimension(55, measuredGravity.getFont().getSize()*2));
			measuredGravity.addFocusListener(this);
			measuredGravity.addActionListener(this);	
			measuredGravity.addKeyListener(this);

			c.gridwidth = GridBagConstraints.REMAINDER;
			mainPanel.add(blankGrid1, c);
		}

		// Second Line
		{
			c.gridwidth = 1;
			mainPanel.add(lMeasuredTemp, c);
			lMeasuredTemp.setText("Measured Temp: ");

			mainPanel.add(measuredTemp, c);
			if (opts.getProperty("optMashTempU").equals("F")) {
				measuredTemp.setText("60.0");
			} else {
				measuredTemp.setText("15.0");
			}
			measuredTemp.setPreferredSize(new java.awt.Dimension(55, measuredTemp.getFont().getSize()*2));
			measuredTemp.addFocusListener(this);
			measuredTemp.addActionListener(this);		
			measuredTemp.addKeyListener(this);

			c.gridwidth = GridBagConstraints.REMAINDER;
			mainPanel.add(tempUnits1, c);
		}

		// Third Line - increase vertical spaceing to offset from user entries
		{
			final Insets i = new Insets(10, 0, 0, 0);
			c.insets = i;
			c.gridwidth = 1;
			mainPanel.add(lCorrectedGravity, c);
			lCorrectedGravity.setText("Corrected Gravity: ");

			mainPanel.add(correctedGravity, c);
			correctedGravity.setText("0.0");
			correctedGravity.setEditable(false);
			correctedGravity.setPreferredSize(new java.awt.Dimension(55, correctedGravity.getFont().getSize()*2));
			correctedGravity.addFocusListener(this);
			correctedGravity.addActionListener(this);

			c.gridwidth = GridBagConstraints.REMAINDER;
			mainPanel.add(blankGrid2, c);
		}

		// Fourth Line
		{
			c.gridwidth = 1;
			mainPanel.add(lCalibratedTemp, c);
			lCalibratedTemp.setText("Calibrated Temp: ");
			if (opts.getProperty("optMashTempU").equals("F")) {
				calibratedTemp.setText("60.0");
			} else {
				calibratedTemp.setText("15.0");
			}
			mainPanel.add(calibratedTemp, c);	
			calibratedTemp.setPreferredSize(new java.awt.Dimension(55, calibratedTemp.getFont().getSize()*2));
			calibratedTemp.addFocusListener(this);
			calibratedTemp.addActionListener(this);		

			c.gridwidth = GridBagConstraints.REMAINDER;
			mainPanel.add(tempUnits2, c);
		}

		// Add in an OK button at the end
		{
			c.gridx = 1;
			c.fill = GridBagConstraints.NONE;
			c.gridwidth = GridBagConstraints.REMAINDER;
			mainPanel.add(okButton, c);
			okButton.setText("OK");
			okButton.addActionListener(this);
		}

		} catch (Exception e) {
			e.printStackTrace();
		}		
	}