public BoilingPointAL()
	{
		setPreferredSize(size);
		
		Container pane = getContentPane();
	    pane.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		
		// temperature label
		JLabel tempLabel = new JLabel("Temperature (K)");
		c.fill = GridBagConstraints.HORIZONTAL;
		c.gridx = 2;
		c.gridy = 0;
		pane.add(tempLabel, c);
		
		// pressure label
		JLabel presLabel = new JLabel("Pressure (mm Hg)");
		c.fill = GridBagConstraints.HORIZONTAL;
		c.gridx = 5;
		c.gridy = 0;
		pane.add(presLabel, c);
		
		// temperature slider
		tempSlider = new JSlider(JSlider.VERTICAL, (int)World.minTemp, (int)World.maxTemp, (int)World.temp);
		tempSlider.setName("tempSlider");
		tempSlider.addChangeListener(this);
		tempSlider.setMajorTickSpacing(50);
		tempSlider.setPaintTicks(true);
		c.fill = GridBagConstraints.VERTICAL;
		c.ipady = 100;      //make it tall
		c.weightx = 0.0;
		c.gridwidth = 3;
		c.gridx = 0;
		c.gridy = 1;
		
		//Create the temperature label table.
        Hashtable<Integer, JLabel> tempLabelTable = new Hashtable<Integer, JLabel>();
        for(int i = 0; i <= tempSlider.getMaximum(); i += tempSlider.getMajorTickSpacing())
        	tempLabelTable.put(new Integer(i), new JLabel(""+i));
        tempSlider.setLabelTable(tempLabelTable);
        tempSlider.setPaintLabels(true);
		pane.add(tempSlider, c);
		
		// pressure slider
		presSlider = new JSlider(JSlider.VERTICAL, (int)World.minPres, (int)World.maxPres, (int)World.pres);
		presSlider.setName("presSlider");
		presSlider.addChangeListener(this);
		presSlider.setMajorTickSpacing(1000);
		presSlider.setPaintTicks(true);
		c.fill = GridBagConstraints.VERTICAL;
		c.ipady = 100;      //make it tall
		c.weightx = 0.0;
		c.gridwidth = 3;
		c.gridx = 3;
		c.gridy = 1;
		
		//Create the temperature label table.
        Hashtable<Integer, JLabel> presLabelTable = new Hashtable<Integer, JLabel>();
        for(int i = 0; i <= presSlider.getMaximum(); i += presSlider.getMajorTickSpacing())
        	presLabelTable.put(new Integer(i), new JLabel(""+i));
        presSlider.setLabelTable(presLabelTable);
        presSlider.setPaintLabels(true);
		pane.add(presSlider, c);
		
		// temperature field
		tempField = new JTextField(""+World.temp, 4);
		tempField.setName("tempField");
		tempField.setEditable(true);
		tempField.setFont(new Font("Verdana", Font.PLAIN, 15));
		tempField.addActionListener(this);
		c.fill = GridBagConstraints.HORIZONTAL;
		c.ipady = 0;
		c.gridx = 0;
		c.gridy = 3;
		pane.add(tempField, c);
		
		// pressure field
		presField = new JTextField(""+World.pres, 4);
		presField.setName("presField");
		presField.setEditable(true);
		presField.setFont(new Font("Verdana", Font.PLAIN, 15));
		presField.addActionListener(this);
		c.fill = GridBagConstraints.HORIZONTAL;
		c.ipady = 0;
		c.gridx = 3;
		c.gridy = 3;
		pane.add(presField, c);
		
		// bp temperature button
		tempButton = new JButton("Find BP temperature");
		tempButton.setName("tempButton");
		tempButton.addActionListener(this);
		c.fill = GridBagConstraints.HORIZONTAL;
		c.ipady = 0;
		c.gridx = 0;
		c.gridy = 5;
		pane.add(tempButton, c);
		
		// bp pressure button
		presButton = new JButton("Find BP pressure");
		presButton.setName("presButton");
		presButton.addActionListener(this);
		c.fill = GridBagConstraints.HORIZONTAL;
		c.ipady = 0;
		c.gridx = 3;
		c.gridy = 5;
		pane.add(presButton, c);
		
		// add the painted graphics as a JPanel
		beakerSim = new BeakerSim(25, 360, 35, 200, 250, 160);
		c.gridx = 5;
		c.gridy = 0;
		pane.add(beakerSim, c);
	}