import javax.swing.*; // Needed for Swing classes import java.awt.event.*; // Needed for ActionListener Interface import java.awt.*; //For grid layout import javax.swing.JOptionPane; /** */ public class TravelGui extends JFrame { private JPanel p1,p2,p3,p4,p5,p6,p7,p8,p9; // To reference a panel private final int WINDOW_WIDTH = 300; // Window width private final int WINDOW_HEIGHT = 320; // Window height private JLabel aLabel,bLabel,cLabel,dLabel,eLabel,fLabel,gLabel,hLabel; //Labels private JTextField aField,bField,cField,dField,eField,fField,gField,hField; //Fields private JButton calculate, reset; //Buttons public TravelGui() { setTitle("Travel Expenses"); setSize(WINDOW_WIDTH, WINDOW_HEIGHT); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new GridLayout(9,1));;//I used the grid layout here. buildPanel();//Call to buildPanel method. setVisible(true); } private void buildPanel(){ aLabel = new JLabel(" Number of days on trip: "); bLabel = new JLabel(" Amount of airfare: "); cLabel = new JLabel(" Amount of car rental: "); dLabel = new JLabel(" Miles Driven: "); eLabel = new JLabel(" Parking Fees: "); fLabel = new JLabel(" Taxi Fees: "); gLabel = new JLabel(" Conference Registration: "); hLabel = new JLabel("Lodging Charges Per Night: "); aField = new JTextField(10); bField = new JTextField(10); cField = new JTextField(10); dField = new JTextField(10); eField = new JTextField(10); fField = new JTextField(10); gField = new JTextField(10); hField = new JTextField(10); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); JPanel p5 = new JPanel(); JPanel p6 = new JPanel(); JPanel p7 = new JPanel(); JPanel p8 = new JPanel(); JPanel pbutton = new JPanel(); calculate = new JButton("Calculate"); reset = new JButton("Reset"); // Add an action listener to the button. calculate.addActionListener(new calculate()); reset.addActionListener(new reset()); p1.add(aLabel); p2.add(bLabel); p3.add(cLabel); p4.add(dLabel); p5.add(eLabel); p6.add(fLabel); p7.add(gLabel); p8.add(hLabel); p1.add(aField); p2.add(bField); p3.add(cField); p4.add(dField); p5.add(eField); p6.add(fField); p7.add(gField); p8.add(hField); pbutton.add(calculate); pbutton.add(reset); add(p1); add(p2); add(p3); add(p4); add(p5); add(p6); add(p7); add(p8); add(pbutton); } private class calculate implements ActionListener{ public void actionPerformed(ActionEvent e) { String input; double days, air, car, miles, parking, taxi, registration, lodging; double reimbursable; double DAILY_MEAL_RATE = 37.0; double MAX_PARKING_FEES = 10.0; double MAX_TAXI = 20.0; double MAX_LODGING_PER_NIGHT = 95.0; double MILEAGE_RATE = 0.27; double parkingRe; input = aField.getText(); days = Double.parseDouble(input); input = bField.getText(); air = Double.parseDouble(input); input = cField.getText(); car = Double.parseDouble(input); input = dField.getText(); miles = Double.parseDouble(input); input = eField.getText(); parking = Double.parseDouble(input); input = fField.getText(); taxi = Double.parseDouble(input); input = gField.getText(); registration = Double.parseDouble(input); input = hField.getText(); lodging = Double.parseDouble(input); if(taxi > MAX_PARKING_FEES * days) { parkingRe=3; } /*p arkingRe = minimum parking (MAX_PARKING_FEES * days), taxiRe is the minimum of taxiActual and (MAX_TAXI * days), lodgingRe is the minimum of (lodgingPerNightActual * days) and (MAX_LODGING_PER_NIGHT * days). reimbursable = (days * DAILY_MEAL_RATE) + parkingRe + taxiRe + (miles * MILEAGE_RATE) + lodgingRe + car + air + reg; (days * DAILY_MEAL_RATE) + parkingRe + taxiRe + (miles * MILEAGE_RATE) + lodgingRe + carRentalActual + air + reg, */ } } private class reset implements ActionListener{ public void actionPerformed(ActionEvent e) { aField.setText(""); bField.setText(""); cField.setText(""); dField.setText(""); eField.setText(""); fField.setText(""); gField.setText(""); hField.setText(""); } } public static void main(String[] args){ TravelGui window = new TravelGui(); } }