/** * David Atkinson * IS6050 * EX01: Create a GUI that calculates miles per gallon used * based on miles driven and gallons used */ package mpg; import javax.swing.*; //Needed for JOptionPane import java.awt.event.*; import java.text.DecimalFormat; //Needed for decimal format public class MPGWindow extends JFrame //class needed to hold inputs, messages to user, window height/width { private JPanel panel; private JLabel mpgCalc; private JLabel milesTrav; private JLabel galUsed; private JTextField mileTextField; private JTextField galTextField; private JButton calcButton; private JButton quitButton; private final int WINDOW_WIDTH = 255; private final int WINDOW_HEIGHT = 200; public MPGWindow() //Constructor { setTitle("MPG Calculator"); setSize(WINDOW_WIDTH, WINDOW_HEIGHT); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); buildPanel(); add(panel); setVisible(true); } private void buildPanel() //Adds label, text fields, buttons { mpgCalc = new JLabel(); milesTrav = new JLabel("Miles Travelled:"); galUsed = new JLabel("Gallons Used:"); mileTextField = new JTextField(6); galTextField = new JTextField(6); calcButton = new JButton("Calculate MPG"); quitButton = new JButton("Quit"); calcButton.addActionListener(new CalcButtonListener()); quitButton.addActionListener(new QuitButtonListener()); panel = new JPanel(); panel.add(mpgCalc); panel.add(milesTrav); panel.add(mileTextField); panel.add(galUsed); panel.add(galTextField); panel.add(calcButton); panel.add(quitButton); } private class CalcButtonListener implements ActionListener //Handles button clicks { public void actionPerformed(ActionEvent e) { double miles; double gallons; double mpg; miles = Double.parseDouble(mileTextField.getText()); gallons = Double.parseDouble(galTextField.getText()); mpg = miles/gallons; DecimalFormat formatter = new DecimalFormat("#00.00"); JOptionPane.showMessageDialog(null, "Distance: " + formatter.format(miles) + "\n Miles per Gallon: " + formatter.format(mpg)); } } private class QuitButtonListener implements ActionListener { public void actionPerformed(ActionEvent e){ System.exit(0); } } }