Cell Solutions, a cell phone provider, cells the following packages: 300 minutes
ID: 3659114 • Letter: C
Question
Cell Solutions, a cell phone provider, cells the following packages:
300 minutes per month -- $45.00
800 minutes per month -- $65.00
1500 minutes per month -- $99.00
The provider also cells the following phones: Model 100 -- $29.95
Model 200 -- $49.95
Model 300 -- $99.95
Customers may also select the following options:
Voice mail -- extra $5.00 per month
Text messaging -- extra $10.00 per month
Write a GUI application that displays a menu that allows the user to select one package, one phone, and any of the desired options. As the user selects items from the menu, the program should show the prices of the items selected.
Explanation / Answer
import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * The MenuWindow class demonstrates a menu system. */ public class MenuWindow extends JFrame { private JLabel messageLabel; // To display a message private JLabel results;// to display result private final int LABEL_WIDTH = 400; // The label's width private final int LABEL_HEIGHT = 200; // The label's height // The following variables will reference menu components. private JMenuBar menuBar; // The menu bar private JMenu fileMenu; // The File menu private JMenu textMenu; // The Text menu private JMenu cellMenu; // The phone menu private JMenu addMenu; // The add on menu private JMenuItem exitItem; // An item to exit the application private JRadioButtonMenuItem blackItem; // To make the text black private JRadioButtonMenuItem redItem; // To make the text red private JRadioButtonMenuItem blueItem; // To make the text blue private JRadioButtonMenuItem blackItem1; // To make the text black private JRadioButtonMenuItem redItem1; // To make the text red private JRadioButtonMenuItem blueItem1; // To make the text blue private JCheckBoxMenuItem voiceItem; // To toggle visibility private JCheckBoxMenuItem textItem; // To toggle visibility /** * Constructor */ public MenuWindow() { // Call the JFrame constructor. super("Cell Phone Package"); // Specify an action for the close button. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Create the message label and set its size and color. messageLabel = new JLabel("Use the menu to " + "select the best plan for you.", SwingConstants.CENTER); messageLabel.setPreferredSize( new Dimension(LABEL_WIDTH, LABEL_HEIGHT)); messageLabel.setForeground(Color.BLACK); // Add the label to the content pane. add(messageLabel); // Build the menu bar. buildMenuBar(); // Pack and display the window. pack(); setVisible(true); } /** * The buildMenuBar method builds the menu bar. */ private void buildMenuBar() { // Create the menu bar. menuBar = new JMenuBar(); // Create the file and text menus. buildFileMenu(); buildTextMenu(); buildAddMenu(); buildCellMenu(); // Add the file and text menus to the menu bar. menuBar.add(fileMenu); menuBar.add(textMenu); menuBar.add(addMenu); menuBar.add(cellMenu); // Set the window's menu bar. setJMenuBar(menuBar); } /** * The buildFileMenu method builds the File menu * and returns a reference to its JMenu object. */ private void buildFileMenu() { // Create an Exit menu item. exitItem = new JMenuItem("Exit"); exitItem.setMnemonic(KeyEvent.VK_X); exitItem.addActionListener(new ExitListener()); // Create a JMenu object for the File menu. fileMenu = new JMenu("File"); fileMenu.setMnemonic(KeyEvent.VK_F); // Add the Exit menu item to the File menu. fileMenu.add(exitItem); } /** * The buildTextMenu method builds the Text menu * and returns a reference to its JMenu object. */ private void buildTextMenu() { // Create the radio button menu items to change the color // of the text. Add an action listener to each one. blackItem = new JRadioButtonMenuItem("300 minutes:$45 per month", true); blackItem.setMnemonic(KeyEvent.VK_B); blackItem.addActionListener(new PlanListener()); redItem = new JRadioButtonMenuItem("800 minutes:$65 per month"); redItem.setMnemonic(KeyEvent.VK_R); redItem.addActionListener(new PlanListener()); blueItem = new JRadioButtonMenuItem("1500 minutes:$99 per month"); blueItem.setMnemonic(KeyEvent.VK_U); blueItem.addActionListener(new PlanListener()); // Create a button group for the radio button items. ButtonGroup group = new ButtonGroup(); group.add(blackItem); group.add(redItem); group.add(blueItem); // Create a JMenu object for the Text menu. textMenu = new JMenu("Minutes"); textMenu.setMnemonic(KeyEvent.VK_T); // Add the menu items to the Text menu. textMenu.add(blackItem); textMenu.add(redItem); textMenu.add(blueItem); } private void buildAddMenu() { // Create the radio button menu items to change the color // of the text. Add an action listener to each one. blackItem1 = new JRadioButtonMenuItem("Model 100:$29.95", true); blackItem1.setMnemonic(KeyEvent.VK_S); blackItem1.addActionListener(new PlanListener()); redItem1 = new JRadioButtonMenuItem("Model 110:$49.95"); redItem1.setMnemonic(KeyEvent.VK_K); redItem1.addActionListener(new PlanListener()); blueItem1 = new JRadioButtonMenuItem("Model 200:$99.95"); blueItem1.setMnemonic(KeyEvent.VK_P); blueItem1.addActionListener(new PlanListener()); // Create a button group for the radio button items. ButtonGroup group = new ButtonGroup(); group.add(blackItem1); group.add(redItem1); group.add(blueItem1); // Create a JMenu object for the Text menu. addMenu = new JMenu("Cell-Phone model"); textMenu.setMnemonic(KeyEvent.VK_Z); // Add the menu items to the Text menu. addMenu.add(blackItem1); addMenu.add(redItem1); addMenu.add(blueItem1); } private void buildCellMenu() { // Create a check box menu item to make the text // visible or invisible. voiceItem = new JCheckBoxMenuItem("Voice mail option", true); voiceItem.setMnemonic(KeyEvent.VK_E); voiceItem.addActionListener(new PlanListener()); // Create a check box menu item to make the text // visible or invisible. textItem = new JCheckBoxMenuItem("Text message option", true); textItem.setMnemonic(KeyEvent.VK_F); textItem.addActionListener(new PlanListener()); // Create a JMenu object for the Text menu. cellMenu = new JMenu("Add ons"); cellMenu.setMnemonic(KeyEvent.VK_D); // Add the menu items to the Text menu. cellMenu.add(voiceItem); cellMenu.add(textItem); } /** * Private inner class that handles the event that * is generated when the user selects Exit from * the File menu. */ private class ExitListener implements ActionListener { public void actionPerformed(ActionEvent e) { System.exit(0); } } /** * Private inner class that handles the event that * is generated when the user selects a color from * the Text menu. */ private class PlanListener implements ActionListener { public void actionPerformed(ActionEvent e) { double plan1; double package1; double text; double message; double addOn; double total; // Determine which color was selected and // act accordingly. if (blackItem.isSelected()){ plan1=45; else if (redItem.isSelected()) plan1=65; else if (blueItem.isSelected()) plan1=99; if (blackItem1.isSelected()) package1=29.95; else if (redItem1.isSelected()) package1=49.95; else if (blueItem1.isSelected()) package1=99.95; if (voiceItem.isSelected()) message =5; if(textItem.isSelected()) text=10; addOn=message + text; total= package1+(6/package1)*100+ plan1+ addOn; } } /** * The main method creates an instance of the MenuWindow * class, which causes it to display its window. */ public static void main(String[] args) { new MenuWindow(); } }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.