In: Computer Science
Using NetBeans IDE, write a JavaFX application that allows the user to choose insurance options. Use a ToggleGroup to allow the user to select only one of two insurance types—HMO (health maintenance organization) or PPO (preferred provider organization). Use CheckBoxes for dental insurance and vision insurance options; the user can select one option, both options, or neither option. As the user selects each option, display its name and price in a text field; the HMO costs $200 per month, the PPO costs $600 per month, the dental coverage adds $75 per month, and the vision care adds $20 per month. Save the project as FXInsurance.
//Java code
import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.stage.Stage; import java.text.DecimalFormat; public class FXInsurance extends Application { /** * HMO costs $200 per month, the PPO costs $600 per month, the dental * coverage adds $75 per month, and the vision care adds $20 per month. */ //constants private final double HMO = 200,PPO=600; private final double DENTAL_COVERAGE = 75; private final double VISION_CARE = 20; @Override public void start(Stage primaryStage) throws Exception { HBox box1 = new HBox(); box1.setPadding(new Insets(10,10,10,10)); HBox box2 = new HBox(); box2.setPadding(new Insets(10,10,10,10)); box2.setSpacing(10); box1.setSpacing(10); //Radio Buttons RadioButton rdbHMO = new RadioButton("HMO"); RadioButton rdbPPO = new RadioButton("PPO"); ToggleGroup group = new ToggleGroup(); rdbHMO.setToggleGroup(group); rdbPPO.setToggleGroup(group); box1.getChildren().add(rdbHMO); box1.getChildren().add(rdbPPO); //CheckBoxes CheckBox chkDentalInsurance = new CheckBox("Dental Insurance"); CheckBox chkVisionInsurance = new CheckBox("Vision Insurance"); box2.getChildren().add(chkDentalInsurance); box2.getChildren().add(chkVisionInsurance); HBox box3 = new HBox(); box3.setPadding(new Insets(10,10,10,10)); //textArea TextArea txtResult = new TextArea(); txtResult.setEditable(false); txtResult.setPrefColumnCount(300); txtResult.setPrefRowCount(400); //Button box3.getChildren().add(txtResult); HBox box4 = new HBox(); box4.setPadding(new Insets(10,10,10,10)); Button btnCalculate = new Button("Display"); box4.getChildren().add(btnCalculate); VBox vBox = new VBox(); vBox.setPadding(new Insets(10,10,10,10)); vBox.getChildren().add(box1); vBox.getChildren().add(box2); vBox.getChildren().add(box3); vBox.getChildren().add(box4); //Scene Scene scene = new Scene(vBox,350,250); primaryStage.setScene(scene); primaryStage.setTitle("FXInsurance"); primaryStage.show(); //button listener btnCalculate.setOnAction(new EventHandler() { double price ; String result ; @Override public void handle(ActionEvent event) { result=""; price =0; if(rdbHMO.isSelected()) { result +="Insurance: health maintenance organization, "; price+= HMO; } if(rdbPPO.isSelected()) { result+="Insurance : preferred provider organization,"; price+=PPO; } if(chkDentalInsurance.isSelected()) { result+="\ndental insurance, "; price+=DENTAL_COVERAGE; } if(chkVisionInsurance.isSelected()) { result+="\nvision insurance, "; price+=VISION_CARE; } txtResult.setText(result+"\nInsurance Price: "+ DecimalFormat.getCurrencyInstance().format(price)); } }); } public static void main(String[] args) { launch(args); } }
//Output