Home -> Workshops -> STA 2000 Java Workshop -> Converter Class
Copy all into Editor and save as Converter.java
import java.awt.*; import java.awt.event.*; public class Converter extends Frame implements ActionListener, ItemListener { private ConverterApplet parent = null; private CheckboxGroup inUnit = new CheckboxGroup(); private CheckboxGroup outUnit = new CheckboxGroup(); private Checkbox inUnitFeet = new Checkbox("Feet", inUnit, true); private Checkbox inUnitMeter = new Checkbox("Meter", inUnit, false); private Checkbox outUnitFeet = new Checkbox("Feet", outUnit, true); private Checkbox outUnitMeter = new Checkbox("Meter", outUnit, false); private NumberField input = new NumberField(0.0); private Label output = new Label("Enter number to convert"); private MenuItem fileExit = new MenuItem("Exit"); private class WindowCloser extends WindowAdapter { public void windowClosing(WindowEvent we) { parent.closeFrame(); } } public Converter(ConverterApplet _parent) { super("Length Converter"); parent = _parent; setup(); fileExit.addActionListener(this); addWindowListener(new WindowCloser()); inUnitMeter.addItemListener(this); inUnitFeet.addItemListener(this); outUnitMeter.addItemListener(this); outUnitFeet.addItemListener(this); validate(); pack(); show(); } public void actionPerformed(ActionEvent ae) { parent.closeFrame(); } public void itemStateChanged(ItemEvent ie) { double number = input.getNumber(); if (input.hasError) output.setText("Invalid input, please try again"); else { double answer = number; if ((inUnit.getSelectedCheckbox() == inUnitFeet) && (outUnit.getSelectedCheckbox() == outUnitMeter)) answer = number / 3.12; else if ((inUnit.getSelectedCheckbox() == inUnitMeter) && (outUnit.getSelectedCheckbox() == outUnitFeet)) answer = number * 3.12; output.setText(number +" " +inUnit.getSelectedCheckbox().getLabel() + " = " +answer +" " +outUnit.getSelectedCheckbox().getLabel()); } } private void setup() { Menu file = new Menu("File"); file.add(fileExit); MenuBar menu = new MenuBar(); menu.add(file); setMenuBar(menu); Panel inUnitPanel = new Panel(); inUnitPanel.setLayout(new FlowLayout()); inUnitPanel.add(inUnitFeet); inUnitPanel.add(inUnitMeter); Panel outUnitPanel = new Panel(); outUnitPanel.setLayout(new FlowLayout()); outUnitPanel.add(outUnitFeet); outUnitPanel.add(outUnitMeter); setLayout(new GridLayout(4, 2)); add(new Label("Number: ", Label.RIGHT)); add(input); add(new Label("Convert from:", Label.RIGHT)); add(inUnitPanel); add(new Label("Convert to:", Label.RIGHT)); add(outUnitPanel); add(new Label("Answer:", Label.RIGHT)); add(output); } }