Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.26 KB | None | 0 0
  1. **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**;
  2.  
  3. *// Declare main layout pane*GridPane **grid**;*// global declarations***double textFieldWidth** = 100; *// width for text fields*NumberFormat **currency** = NumberFormat.*getCurrencyInstance*();NumberFormat **percent** = NumberFormat.*getPercentInstance*();
  4.  
  5. @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);
  6.  
  7. *// set up title label***titleLabel** = **new** Label(**"Tip Calculator"**);**titleLabel**.setAlignment(Pos.***CENTER***);
  8.  
  9. *// set up check amount label***checkAmtLabel** = **new** Label(**"Check Amount"**);**checkAmtLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
  10.  
  11. *// set up check amount text field***checkAmtTextField** = **new** TextField();
  12.  
  13. *// set up slider label***tipPercentLabel** = **new** Label();**tipPercentLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
  14.  
  15. \*// 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));});
  16.  
  17. *// set up split label***splitLabel** = **new** Label(**"Split"**);**splitLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
  18.  
  19. *// 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"**);
  20.  
  21. *// set up calculate button***calculateTipButton** = **new** Button(**"Calculate Tip"**);**calculateTipButton**.setOnAction(e -> calculateTipButtonClick(e));
  22.  
  23. *// set up tip amount label***tipAmountLabel** = **new** Label(**"Tip Amount"**);**tipAmountLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
  24.  
  25. *// set up tip amount text field***tipAmtTextField** = **new** TextField();**tipAmtTextField**.setEditable(**false**);
  26.  
  27. *// set up total label***totalLabel** = **new** Label(**"Total"**);**totalLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
  28.  
  29. *// set up total amount text field***totalAmtTextField** = **new** TextField();**totalAmtTextField**.setEditable(**false**);
  30.  
  31. *// set up amount per person label***amtPerPersonLabel** = **new** Label(**"Amount Per Person"**);**amtPerPersonLabel**.setAlignment(Pos.***CENTER\_RIGHT***);
  32.  
  33. *// set up amount per person text field***amtPerPersonTextField** = **new** TextField();**amtPerPersonTextField**.setEditable(**false**);
  34.  
  35. *// 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**);
  36.  
  37. primaryStage.setTitle(**"Tip Calculator"**);primaryStage.setScene(**new** Scene(**grid**));primaryStage.show();}
  38.  
  39. **private void** calculateTipButtonClick(ActionEvent e){*//button*Button calculations = (Button) e.getSource();
  40.  
  41. *// get the check value*Double calcCheck;calcCheck = Double.*parseDouble*(**checkAmtTextField**.getText());
  42.  
  43. *// get the tip percent*Double calcTipPercent;calcTipPercent = Double.*parseDouble*(**tipPercentLabel**.getText());
  44.  
  45. *// get the split*String splitChoice = **splitChoiceBox**.getValue().toString();**int** split = Integer.*parseInt*(splitChoice.substring(0,1));
  46.  
  47. *// compute tip amount*Double tipAmount;Double checkTip;checkTip = calcTipPercent \* calcCheck;tipAmount = calcCheck - checkTip;
  48.  
  49. *// compute total*Double totalBill;totalBill = tipAmount + calcCheck;
  50.  
  51. *// compute amount per person*Double splitBill;splitBill = totalBill/split;
  52.  
  53. *// 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));}
  54.  
  55. **private void** checkAmtTxtClick(){*// clear checkAmt TextField, tipAmtTextField, totalAmtTextField and amtPerPersonTextField// set tipPercentSlider value to 15// set split choice box value to “1 Way”*}
  56.  
  57. **public static void** main(String\[\] args) {*launch*(args);}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement