jbonanno icon

VacationPrice.java

jbonanno | PRO | 06/18/17 07:26:19 PM UTC | 0 ⭐ | 269 👁️ | Never ⏰ | []
Java |

7.17 KB

|

None

|

0 👍

/

0 👎

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vacationprice;
 import java.lang.Throwable; 
import java.text.NumberFormat;
 
/**
 *
 * @author j
 */
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.text.NumberFormat;
import java.lang.Throwable;
import java.lang.Exception;
import java.util.InputMismatchException;
import javax.swing.*;
import javax.swing.text.JTextComponent;
 
public class VacationPrice {
 
    public static void main(String[] args) {
        JFrame frame = new VacationFrame();
        frame.setVisible(true);
    }
}
 
class VacationFrame extends JFrame {
 
    public VacationFrame() {
        setTitle("Vacation Price Calculator and Vacation Availability App");
        centerWindow(this);
        setSize(1200, 500);
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new VacationPanel();
        this.add(panel);
    }
 
    private void centerWindow(Window w) {
        Toolkit tk = Toolkit.getDefaultToolkit();
        Dimension d = tk.getScreenSize();
        setLocation((d.width - w.getWidth()) / 2, (d.height - w.getHeight()) / 2);
    }
}
 
class VacationPanel extends JPanel {
 
    private JTextField weeksOnVacationTextField,
            peopleNumTextField,
            mealsTextField,
            vacationPriceTextField,
            vacationThereTextField,
    vacationAvailabilityTextField;
    
    private JLabel weeksOnVacationLabel,
            peopleNumLabel,
            mealsLabel,
            vacationPriceLabel,
            vacationThereLabel,
    vacationAvailabilityLabel;
    
    private JButton calculateButton,
            checkButton,
            exitButton;
 
    public VacationPanel() {
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        // display panel
        JPanel displayPanel = new JPanel();
        displayPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
 
        // weeks on vacation label
        weeksOnVacationLabel = new JLabel("How many weeks are you going on vacation?");
        displayPanel.add(weeksOnVacationLabel);
 
        // weeks on vacation text field
        weeksOnVacationTextField = new JTextField(2);
        displayPanel.add(weeksOnVacationTextField);
    
 
    
 
        // number of people label
        peopleNumLabel = new JLabel("Number of people on vacation with you");
        displayPanel.add(peopleNumLabel);
 
        // number of people text field
        peopleNumTextField = new JTextField(2);
        displayPanel.add(peopleNumTextField);
       
 
        // meals label
        mealsLabel = new JLabel("Number of meals you plan on purchasing:");
        displayPanel.add(mealsLabel);
 
        // meals text field
        mealsTextField = new JTextField(10);
        displayPanel.add(mealsTextField);
 
        // vacation price label
        vacationPriceLabel = new JLabel("VacationPrice:");
        displayPanel.add(vacationPriceLabel);
 
        // vacation price text field
        vacationPriceTextField = new JTextField(10);
        vacationPriceTextField.setEditable(false);
        vacationPriceTextField.setFocusable(false);
        displayPanel.add(vacationPriceTextField);
 
 
        
        
        
        // question panel
          JPanel questionPanel = new JPanel();
        questionPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
        questionPanel.setVisible(true);
        
        
           // vacation price label
        vacationAvailabilityLabel = new JLabel("Enter day of month to see if it's available");
        questionPanel.add(vacationAvailabilityLabel);
 
        // vacation availability text field
        vacationAvailabilityTextField = new JTextField(2);
        vacationAvailabilityTextField.setEditable(true);
        vacationAvailabilityTextField.setFocusable(true);
        questionPanel.add(vacationAvailabilityTextField);
 
 
        
             // vacation price label
        vacationThereLabel = new JLabel("Is day available?");
        questionPanel.add(vacationThereLabel);
 
        
  // vacation availability  text field
        vacationThereTextField = new JTextField(20);
        vacationThereTextField.setEditable(false);
        vacationThereTextField.setFocusable(false);
        questionPanel.add(vacationThereTextField);
 
        
        
 
        // button panel
        JPanel buttonPanel = new JPanel();
        buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
 
        // calculate button
        calculateButton = new JButton("Calculate");
        calculateButton.addActionListener(new ActionListener() {
 
            public void actionPerformed(ActionEvent e) {
                
          
                int weeksOnVacation = Integer.parseInt(weeksOnVacationTextField.getText());
           
                int peopleNum = Integer.parseInt(peopleNumTextField.getText());
                int mealsNum = Integer.parseInt(mealsTextField.getText());
                double vacationPrice = calculateVacationPrice.calculateVacationPrice(
                    weeksOnVacation, peopleNum, mealsNum);
                NumberFormat currency = NumberFormat.getCurrencyInstance();
                vacationPriceTextField.setText(currency.format(vacationPrice));
               
              
          
            }});
        buttonPanel.add(calculateButton);
 
        // exit button
        exitButton = new JButton("Exit");
        exitButton.addActionListener(new ActionListener() {
 
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        buttonPanel.add(exitButton);
        
         buttonPanel.add(calculateButton);
 
         
         
         // form another panel to handle the program to see if vacation dates are available
         
         class questionPanel extends JPanel
{
private JButton checkButton;
}
         
        checkButton = new JButton("Enter date to see if it's available");
        checkButton.addActionListener(new ActionListener() {
 
            public void actionPerformed(ActionEvent e) {
                
            
               int daySearched = Integer.parseInt(vacationAvailabilityTextField.getText());
              
              
    String s = daysAvailable.getMessage(daySearched);
               vacationThereTextField.setText(s);
              
             
            }});
        questionPanel.add(checkButton);
 
    
 
        
 
          
      
 
                 
             
         
 
     
 
        // add panels to main panel
        this.setLayout(new BorderLayout());
        this.add(displayPanel, BorderLayout.NORTH);
           this.add(questionPanel, BorderLayout.SOUTH);
        this.add(buttonPanel, BorderLayout.CENTER);
        
        
        
      
        
    }
 
 
 
}

Comments