Skip to content

Commit 5b9dfba

Browse files
committedDec 21, 2020
updated
1 parent dcb0bac commit 5b9dfba

14 files changed

+72
-111
lines changed
 
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

‎lab-07-javafx/CalculatorJavaFX.java

+72-111
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
Calculator Application
66
*/
77

8+
// import libraries
89
import javafx.application.Application;
910
import javafx.scene.Scene;
1011
import javafx.stage.Stage;
@@ -17,16 +18,16 @@
1718
import javafx.event.ActionEvent;
1819

1920
public class CalculatorJavaFX extends Application {
20-
String value;
21-
String math;
22-
double num1, num2, result;
21+
String value; // text value
22+
String math; // calculations, +, -, *, /
23+
double num1, num2, result; // number 1, number 2, result
2324

2425
@Override
25-
public void start(Stage primaryStage) throws Exception {
26-
// Text Field
27-
TextField jtfSpace = new TextField();
26+
public void start(Stage stage) throws Exception {
27+
// Text
28+
TextField textField = new TextField();
2829

29-
// Button Field
30+
// Buttons
3031
Button bOne = new Button("1");
3132
Button bTwo = new Button("2");
3233
Button bThree = new Button("3");
@@ -43,148 +44,108 @@ public void start(Stage primaryStage) throws Exception {
4344
Button bDiv = new Button("/");
4445
Button bEqual = new Button("=");
4546
Button bDot = new Button(".");
46-
47-
bOne.setOnAction(new EventHandler<ActionEvent>(){
48-
@Override
49-
public void handle(ActionEvent event) {
50-
jtfSpace.setText(jtfSpace.getText() + "1");
51-
}
52-
});
53-
bTwo.setOnAction(new EventHandler<ActionEvent>(){
54-
@Override
55-
public void handle(ActionEvent event) {
56-
jtfSpace.setText(jtfSpace.getText() + "2");
57-
}
58-
});
59-
bThree.setOnAction(new EventHandler<ActionEvent>(){
60-
@Override
61-
public void handle(ActionEvent event) {
62-
jtfSpace.setText(jtfSpace.getText() + "3");
63-
}
64-
});
65-
bFour.setOnAction(new EventHandler<ActionEvent>(){
66-
@Override
67-
public void handle(ActionEvent event) {
68-
jtfSpace.setText(jtfSpace.getText() + "4");
69-
}
70-
});
71-
bFive.setOnAction(new EventHandler<ActionEvent>(){
72-
@Override
73-
public void handle(ActionEvent event) {
74-
jtfSpace.setText(jtfSpace.getText() + "5");
75-
}
76-
});
77-
bSix.setOnAction(new EventHandler<ActionEvent>(){
78-
@Override
79-
public void handle(ActionEvent event) {
80-
jtfSpace.setText(jtfSpace.getText() + "6");
81-
}
82-
});
83-
bSeven.setOnAction(new EventHandler<ActionEvent>(){
84-
@Override
85-
public void handle(ActionEvent event) {
86-
jtfSpace.setText(jtfSpace.getText() + "7");
87-
}
88-
});
89-
bEight.setOnAction(new EventHandler<ActionEvent>(){
90-
@Override
91-
public void handle(ActionEvent event) {
92-
jtfSpace.setText(jtfSpace.getText() + "8");
93-
}
94-
});
95-
bNine.setOnAction(new EventHandler<ActionEvent>(){
96-
@Override
97-
public void handle(ActionEvent event) {
98-
jtfSpace.setText(jtfSpace.getText() + "9");
99-
}
100-
});
101-
bZero.setOnAction(new EventHandler<ActionEvent>(){
102-
@Override
103-
public void handle(ActionEvent event) {
104-
jtfSpace.setText(jtfSpace.getText() + "0");
105-
}
106-
});
107-
bDot.setOnAction(new EventHandler<ActionEvent>(){
108-
@Override
109-
public void handle(ActionEvent event) {
110-
jtfSpace.setText(jtfSpace.getText() + ".");
111-
}
112-
});
47+
48+
// lambdas
49+
bZero.setOnAction(e -> textField.setText(textField.getText() + "0"));
50+
bOne.setOnAction(e -> textField.setText(textField.getText() + "1"));
51+
bTwo.setOnAction(e -> textField.setText(textField.getText() + "2"));
52+
bThree.setOnAction(e -> textField.setText(textField.getText() + "3"));
53+
bFour.setOnAction(e -> textField.setText(textField.getText() + "4"));
54+
bFive.setOnAction(e -> textField.setText(textField.getText() + "5"));
55+
bSix.setOnAction(e -> textField.setText(textField.getText() + "6"));
56+
bSeven.setOnAction(e -> textField.setText(textField.getText() + "7"));
57+
bEight.setOnAction(e -> textField.setText(textField.getText() + "8"));
58+
bNine.setOnAction(e -> textField.setText(textField.getText() + "9"));
59+
bDot.setOnAction(e -> textField.setText(textField.getText() + "."));
60+
11361
bAdd.setOnAction(new EventHandler<ActionEvent>(){
11462
@Override
11563
public void handle(ActionEvent event) {
11664
math = "Add";
117-
value = jtfSpace.getText();
65+
value = textField.getText();
11866
num1 = Double.parseDouble(value);
119-
jtfSpace.setText("");
67+
textField.setText("");
12068
}
12169
});
12270
bSub.setOnAction(new EventHandler<ActionEvent>(){
12371
@Override
12472
public void handle(ActionEvent event) {
12573
math = "Sub";
126-
value = jtfSpace.getText();
74+
value = textField.getText();
12775
num1 = Double.parseDouble(value);
128-
jtfSpace.setText("");
76+
textField.setText("");
12977
}
13078
});
13179
bMul.setOnAction(new EventHandler<ActionEvent>(){
13280
@Override
13381
public void handle(ActionEvent event) {
13482
math = "Mul";
135-
value = jtfSpace.getText();
83+
value = textField.getText();
13684
num1 = Double.parseDouble(value);
137-
jtfSpace.setText("");
85+
textField.setText("");
13886
}
13987
});
14088
bDiv.setOnAction(new EventHandler<ActionEvent>(){
14189
@Override
14290
public void handle(ActionEvent event) {
14391
math = "Div";
144-
value = jtfSpace.getText();
92+
value = textField.getText();
14593
num1 = Double.parseDouble(value);
146-
jtfSpace.setText("");
94+
textField.setText("");
14795
}
14896
});
14997

15098
bEqual.setOnAction(new EventHandler<ActionEvent>(){
15199
@Override
152100
public void handle(ActionEvent event) {
153-
value = jtfSpace.getText();
154-
num2 = Double.parseDouble(value);
101+
value = textField.getText();
102+
num2 = Double.parseDouble(value); // get the last value
155103
switch (math) {
156-
case "Div": result = num1 / num2;
104+
case "Div": result = num1 / num2;
105+
break;
157106
case "Mul": result = num1 * num2;
158-
case "Add": result = num1 + num2;
159-
case "Sub": result = num1 - num2;
107+
break;
108+
case "Add": result = num1 + num2;
109+
break;
110+
case "Sub": result = num1 - num2;
111+
break;
160112
}
161-
jtfSpace.setText("" + result);
113+
textField.setText("" + result);
162114
}
163115
});
164-
165-
GridPane root=new GridPane();
166-
HBox root2_1 = new HBox();
167-
HBox root2_2 = new HBox();
168-
HBox root2_3 = new HBox();
169-
HBox root2_4 = new HBox();
170-
Scene scene = new Scene(root, 150, 135);
171-
172-
root.addRow(0, jtfSpace);
173-
root.addRow(1, root2_4);
174-
root.addRow(2, root2_3);
175-
root.addRow(3, root2_2);
176-
root.addRow(4, root2_1);
177-
root2_1.getChildren().addAll(bZero, bDot, bEqual, bAdd);
178-
root2_2.getChildren().addAll(bOne, bTwo, bThree, bSub);
179-
root2_3.getChildren().addAll(bFour, bFive, bSix, bMul);
180-
root2_4.getChildren().addAll(bSeven, bEight, bNine, bDiv);
181-
182-
primaryStage.setScene(scene);
183-
primaryStage.setTitle("Calculator");
184-
primaryStage.show();
116+
117+
// set layout to gridpane
118+
GridPane gridPane = new GridPane();
119+
120+
gridPane.add(textField, 0, 0);
121+
122+
gridPane.add(bSeven, 1, 0);
123+
gridPane.add(bEight, 1, 1);
124+
gridPane.add(bNine, 1, 2);
125+
gridPane.add(bDiv, 1, 3);
126+
127+
gridPane.add(bFour, 2, 0);
128+
gridPane.add(bFive, 2, 1);
129+
gridPane.add(bSix, 2, 2);
130+
gridPane.add(bMul, 2, 3);
131+
132+
gridPane.add(bOne, 3, 0);
133+
gridPane.add(bTwo, 3, 1);
134+
gridPane.add(bThree, 3, 2);
135+
gridPane.add(bSub, 3, 3);
136+
137+
gridPane.add(bZero, 4, 0);
138+
gridPane.add(bDot, 4, 1);
139+
gridPane.add(bEqual, 4, 2);
140+
gridPane.add(bAdd, 4, 3);
141+
142+
Scene scene = new Scene(gridPane);
143+
144+
stage.setScene(scene);
145+
stage.setTitle("Calculator");
146+
stage.show();
185147
}
186148
public static void main(String[] args) {
187-
Application.launch(args);
149+
Application.launch(args); // running
188150
}
189-
190151
}
2.43 KB
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)