Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- **public class** Main **extends** Application{*//Declare fields*Label **titleLabel**, **checkAmtLabel**, **splitLabel**, **tipAmountLabel**,**totalLabel**, **amtPerPersonLabel**, **tipPercentLabel**;TextField **checkAmtTextField**, **tipAmtTextField**, **totalAmtTextField**,**amtPerPersonTextField**, **tipPercentTxt**;Button **calculateTipButton**;ChoiceBox **splitChoiceBox**;Slider **tipPercentSlider**;
- *// Declare main layout pane*GridPane **grid**;*// global declarations***double textFieldWidth** = 100; *// width for text fields*NumberFormat **currency** = NumberFormat.*getCurrencyInstance*();NumberFormat **percent** = NumberFormat.*getPercentInstance*();
- @Override**public void** start(Stage primaryStage) **throws** Exception{*// create grid***grid** = **new** GridPane();**grid**.setPadding(**new** Insets(10, 10, 10, 10));**grid**.setHgap(10);**grid**.setVgap(10);
- *// set up title label***titleLabel** = **new** Label(**"Tip Calculator"**);**titleLabel**.setAlignment(Pos.***CENTER***);
- *// set up check amount label***checkAmtLabel** = **new** Label(**"Check Amount"**);**checkAmtLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
- *// set up check amount text field***checkAmtTextField** = **new** TextField();
- *// set up slider label***tipPercentLabel** = **new** Label();**tipPercentLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
- \*// set up slider//settings//tipPercentTxt = new TextField("0");***tipPercentSlider*** *=* ***new*** *Slider();****tipPercentSlider****.setMin(0);****tipPercentSlider****.setMax(25);****tipPercentSlider****.setMajorTickUnit(5);****tipPercentSlider****.setMinorTickCount(4);****tipPercentSlider****.setBlockIncrement(1);****tipPercentSlider****.setShowTickLabels(****true****);****tipPercentSlider****.setShowTickMarks(****true****);****tipPercentSlider****.setSnapToTicks(****true****);****tipPercentSlider****.valueProperty().addListener((observable, oldvalue, newvalue) ->{*//tipPercentLabel.setText("Tip Percent: "+ Integer.toString(newvalue.intValue()));***tipPercentLabel***\*.setText("Tip Percent: "\*\*+ **percent**.format(newvalue.intValue() / 100.0));});
- *// set up split label***splitLabel** = **new** Label(**"Split"**);**splitLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
- *// set up split choice box***splitChoiceBox** = **new** ChoiceBox();*//make choice box choices***splitChoiceBox**.getItems().addAll(**"1 Way"**, **"2 Ways"**, **"3 Ways"**, **"4 Ways"**, **"5 Ways"**);**splitChoiceBox**.setValue(**"3 Ways"**);
- *// set up calculate button***calculateTipButton** = **new** Button(**"Calculate Tip"**);**calculateTipButton**.setOnAction(e -> calculateTipButtonClick(e));
- *// set up tip amount label***tipAmountLabel** = **new** Label(**"Tip Amount"**);**tipAmountLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
- *// set up tip amount text field***tipAmtTextField** = **new** TextField();**tipAmtTextField**.setEditable(**false**);
- *// set up total label***totalLabel** = **new** Label(**"Total"**);**totalLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
- *// set up total amount text field***totalAmtTextField** = **new** TextField();**totalAmtTextField**.setEditable(**false**);
- *// set up amount per person label***amtPerPersonLabel** = **new** Label(**"Amount Per Person"**);**amtPerPersonLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
- *// set up amount per person text field***amtPerPersonTextField** = **new** TextField();**amtPerPersonTextField**.setEditable(**false**);
- *// fill the grid***grid**.add(**titleLabel**, 0, 0, 2, 1);**grid**.addRow(1, **checkAmtLabel**, **checkAmtTextField**);**grid**.addRow(2, **tipPercentLabel**, **tipPercentSlider**);**grid**.addRow(3, **splitLabel**, **splitChoiceBox**);**grid**.add(**calculateTipButton**, 0, 4, 2, 1);**grid**.addRow(5, **tipAmountLabel**, **tipAmtTextField**);**grid**.addRow(6, **totalLabel**, **totalAmtTextField**);**grid**.addRow(7, **amtPerPersonLabel**, **amtPerPersonTextField**);
- primaryStage.setTitle(**"Tip Calculator"**);primaryStage.setScene(**new** Scene(**grid**));primaryStage.show();}
- **private void** calculateTipButtonClick(ActionEvent e){*//button*Button calculations = (Button) e.getSource();
- *// get the check value*Double calcCheck;calcCheck = Double.*parseDouble*(**checkAmtTextField**.getText());
- *// get the tip percent*Double calcTipPercent;calcTipPercent = Double.*parseDouble*(**tipPercentLabel**.getText());
- *// get the split*String splitChoice = **splitChoiceBox**.getValue().toString();**int** split = Integer.*parseInt*(splitChoice.substring(0,1));
- *// compute tip amount*Double tipAmount;Double checkTip;checkTip = calcTipPercent \* calcCheck;tipAmount = calcCheck - checkTip;
- *// compute total*Double totalBill;totalBill = tipAmount + calcCheck;
- *// compute amount per person*Double splitBill;splitBill = totalBill/split;
- *// display as currency tip amount, total and amount per person***tipAmtTextField**.setText(**currency**.format(tipAmount));**totalAmtTextField**.setText(**currency**.format(totalBill));**amtPerPersonTextField**.setText(**currency**.format(splitBill));}
- **private void** checkAmtTxtClick(){*// clear checkAmt TextField, tipAmtTextField, totalAmtTextField and amtPerPersonTextField// set tipPercentSlider value to 15// set split choice box value to “1 Way”*}
- **public static void** main(String\[\] args) {*launch*(args);}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement