5
5
Calculator Application
6
6
*/
7
7
8
+ // import libraries
8
9
import javafx .application .Application ;
9
10
import javafx .scene .Scene ;
10
11
import javafx .stage .Stage ;
17
18
import javafx .event .ActionEvent ;
18
19
19
20
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
23
24
24
25
@ 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 ();
28
29
29
- // Button Field
30
+ // Buttons
30
31
Button bOne = new Button ("1" );
31
32
Button bTwo = new Button ("2" );
32
33
Button bThree = new Button ("3" );
@@ -43,148 +44,108 @@ public void start(Stage primaryStage) throws Exception {
43
44
Button bDiv = new Button ("/" );
44
45
Button bEqual = new Button ("=" );
45
46
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
+
113
61
bAdd .setOnAction (new EventHandler <ActionEvent >(){
114
62
@ Override
115
63
public void handle (ActionEvent event ) {
116
64
math = "Add" ;
117
- value = jtfSpace .getText ();
65
+ value = textField .getText ();
118
66
num1 = Double .parseDouble (value );
119
- jtfSpace .setText ("" );
67
+ textField .setText ("" );
120
68
}
121
69
});
122
70
bSub .setOnAction (new EventHandler <ActionEvent >(){
123
71
@ Override
124
72
public void handle (ActionEvent event ) {
125
73
math = "Sub" ;
126
- value = jtfSpace .getText ();
74
+ value = textField .getText ();
127
75
num1 = Double .parseDouble (value );
128
- jtfSpace .setText ("" );
76
+ textField .setText ("" );
129
77
}
130
78
});
131
79
bMul .setOnAction (new EventHandler <ActionEvent >(){
132
80
@ Override
133
81
public void handle (ActionEvent event ) {
134
82
math = "Mul" ;
135
- value = jtfSpace .getText ();
83
+ value = textField .getText ();
136
84
num1 = Double .parseDouble (value );
137
- jtfSpace .setText ("" );
85
+ textField .setText ("" );
138
86
}
139
87
});
140
88
bDiv .setOnAction (new EventHandler <ActionEvent >(){
141
89
@ Override
142
90
public void handle (ActionEvent event ) {
143
91
math = "Div" ;
144
- value = jtfSpace .getText ();
92
+ value = textField .getText ();
145
93
num1 = Double .parseDouble (value );
146
- jtfSpace .setText ("" );
94
+ textField .setText ("" );
147
95
}
148
96
});
149
97
150
98
bEqual .setOnAction (new EventHandler <ActionEvent >(){
151
99
@ Override
152
100
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
155
103
switch (math ) {
156
- case "Div" : result = num1 / num2 ;
104
+ case "Div" : result = num1 / num2 ;
105
+ break ;
157
106
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 ;
160
112
}
161
- jtfSpace .setText ("" + result );
113
+ textField .setText ("" + result );
162
114
}
163
115
});
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 ();
185
147
}
186
148
public static void main (String [] args ) {
187
- Application .launch (args );
149
+ Application .launch (args ); // running
188
150
}
189
-
190
151
}
0 commit comments