Question: JavaFX Help need! Smartphone Packages Cell Solutions, a cell phone provider, sells the following data plans: $45 for 8GB/month $65 for 16GB/month $99 for 20GB/month
JavaFX
Help need!
Smartphone Packages
Cell Solutions, a cell phone provider, sells the following data plans:
$45 for 8GB/month
$65 for 16GB/month
$99 for 20GB/month
The phone provider sells the following phones. (A 6 percent sales tax applies to the sale of a phone.)
$299.95 for Model 100
$399.95 for Model 110
$499.95 for Model 200
Customers may also select the following options:
Phone Replacement Insurance: $5/month
WiFi Hotspot Capability: $10/month
Write an application that displays a menu system. The menu system should allow the user to select one data plan, one phone, and any of the options desired. As the user selects items from the menu, the application should show the prices of the items selected.
Here is the code I did
package trysmartphonepackages;
import javafx.application.Application; import javafx.geometry.Pos; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.MenuBar; import javafx.scene.control.Menu; import javafx.scene.control.MenuItem; import javafx.scene.control.CheckMenuItem; import javafx.scene.control.RadioMenuItem; import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.Toggle; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.BorderPane; import javafx.scene.layout.VBox;
public class TRYSmartphonePackages extends Application { private MenuBar menuBar; private Menu dataMenu, smartphoneMenu, extrasMenu; private RadioMenuItem dataItem1, dataItem2, dataItem3, ModelItem1, ModelItem2, ModelItem3; private CheckMenuItem extrasItem1, extrasItem2; private Double selectedDataCost, extrasCost1, extrasCost2; private Double selectedSmartphoneCost, total; private Label dataLabel, smartphoneLabel, extrasLabel, selectedDataCostLabel, selectedSmartphoneCostLabel, selectedExtrasCostLabel1, selectedExtrasCostLabel2, totalCost;
public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { final double WIDTH = 400.0, HEIGHT = 400.0; dataLabel = new Label("Select a Data Plan from the menu"); smartphoneLabel = new Label("Select a Smartphone from the menu"); extrasLabel = new Label("Select Extras needed from the menu"); selectedDataCostLabel = new Label(); selectedSmartphoneCostLabel = new Label(); selectedExtrasCostLabel1 = new Label(); selectedExtrasCostLabel2 = new Label(); totalCost = new Label(); total = selectedDataCost + selectedSmartphoneCost + extrasCost1 + extrasCost2; totalCost.setText("Total cost is $" + (Double.toString(total)));
menuBar = new MenuBar(); buildDataMenu(primaryStage); buildSmartphoneMenu(); buildExtrasMenu(primaryStage); //buildTotals();
menuBar.getMenus().add(dataMenu); menuBar.getMenus().add(smartphoneMenu); menuBar.getMenus().add(extrasMenu);
BorderPane borderPane = new BorderPane(); borderPane.setTop(menuBar); VBox vbox = new VBox(10, dataLabel, selectedDataCostLabel, smartphoneLabel, selectedSmartphoneCostLabel, extrasLabel, selectedExtrasCostLabel1, selectedExtrasCostLabel2, totalCost); vbox.setAlignment(Pos.CENTER); borderPane.setCenter(vbox);
Scene scene = new Scene(borderPane, WIDTH, HEIGHT); primaryStage.setScene(scene); primaryStage.show(); }
private void buildDataMenu(Stage primaryStage) { dataMenu = new Menu("Data Plans");
dataItem1 = new RadioMenuItem("8GB / Month"); dataItem2 = new RadioMenuItem("16GB / Month"); dataItem3 = new RadioMenuItem("20GB / Month"); ToggleGroup dataToggleGroup = new ToggleGroup(); dataItem1.setToggleGroup(dataToggleGroup); dataItem2.setToggleGroup(dataToggleGroup); dataItem3.setToggleGroup(dataToggleGroup);
dataItem1.setOnAction(event -> { if (dataItem1.isSelected()) { dataLabel.setText("Data Plan selected is 8GB / Month"); selectedDataCost = 45.00; selectedDataCostLabel.setText("Cost for the slected Data Plan is $45.00"); } }); dataItem2.setOnAction(event -> { if (dataItem2.isSelected()) { dataLabel.setText("Data Plan selected is 16GB / Month"); selectedDataCost = 65.00; selectedDataCostLabel.setText("Cost for the slected Data Plan is $65.00"); } }); dataItem3.setOnAction(event -> { if (dataItem3.isSelected()) { dataLabel.setText("Data Plan selected is 20GB / Month"); selectedDataCost = 99.00; selectedDataCostLabel.setText("Cost for the slected Data Plan is $99.00"); } }); dataMenu.getItems().addAll(dataItem1, dataItem2, dataItem3); } private void buildSmartphoneMenu() { smartphoneMenu = new Menu("SmartPhones");
ModelItem1 = new RadioMenuItem("Model 100"); ModelItem2 = new RadioMenuItem("Model 110"); ModelItem3 = new RadioMenuItem("Model 200");
ToggleGroup smartPhoneToggleGroup = new ToggleGroup(); ModelItem1.setToggleGroup(smartPhoneToggleGroup); ModelItem2.setToggleGroup(smartPhoneToggleGroup); ModelItem3.setToggleGroup(smartPhoneToggleGroup); ModelItem1.setOnAction(event -> { if (ModelItem1.isSelected()) { smartphoneLabel.setText("Smarphone selected is Model 100"); selectedSmartphoneCost = 299.95; selectedSmartphoneCostLabel.setText("Cost for the selected Smartphone " + "Model 100 is $299.95"); } }); ModelItem2.setOnAction(event -> { if (ModelItem2.isSelected()) { smartphoneLabel.setText("Smarphone selected is Model 110"); selectedSmartphoneCost = 399.95; selectedSmartphoneCostLabel.setText("Cost for the selected Smartphone " + "Model 110 is $399.95"); } }); ModelItem3.setOnAction(event -> { if (ModelItem3.isSelected()) { smartphoneLabel.setText("Smarphone selected is Model 200"); selectedSmartphoneCost = 499.95; selectedSmartphoneCostLabel.setText("Cost for the selected Smarphone " + "Model 200 is $499.95"); } });
smartphoneMenu.getItems().addAll(ModelItem1, ModelItem2, ModelItem3); } private void buildExtrasMenu(Stage primaryStage) { extrasMenu = new Menu("Extras");
extrasItem1 = new CheckMenuItem("Phone Replacement Insurance"); extrasItem2 = new CheckMenuItem("WiFi Hotspot Capability");
extrasItem1.setOnAction(event -> { extrasLabel.setText(null); if (extrasItem1.isSelected()) { extrasCost1 = 5.00; selectedExtrasCostLabel1.setText("Selected Phone Replacement Insurance " + "cost is $5.00 per month"); } else { selectedExtrasCostLabel1.setText(null); extrasCost1 = 0.00; } }); extrasItem2.setOnAction(event -> { extrasLabel.setText(null); if (extrasItem2.isSelected()) { extrasCost2 = 10.00; selectedExtrasCostLabel2.setText("Selected WiFi Hotspot Capability " + "cost is $10.00 per month"); } else { selectedExtrasCostLabel2.setText(null); extrasCost2 = 0.00; } }); extrasMenu.getItems().addAll(extrasItem1, extrasItem2); } }
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
