/**
* 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);
}
}
}