-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMagicSquare.java
More file actions
159 lines (131 loc) · 5.36 KB
/
MagicSquare.java
File metadata and controls
159 lines (131 loc) · 5.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.Group;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.scene.layout.HBox;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.scene.input.MouseEvent;
import javafx.geometry.Pos;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
public class MagicSquare extends Application{
private TextField square1, square2, square3, square4, square5, square6, square7, square8, square9;
public void start(Stage stage) throws Exception{
stage.setTitle("Magic Square");
stage.setWidth(400);
stage.setHeight(600);
stage.setMinWidth(350);
stage.setMinHeight(450);
BorderPane mainPane = new BorderPane();
GridPane squarePane = new GridPane();
Button btnCheck = new Button("Check!");
Button btnShow = new Button("Show sums");
Button btnHide = new Button("Hide sums");
Label lblResult = new Label();
HBox boxBtns = new HBox();
VBox boxControls = new VBox();
boxBtns.getChildren().addAll(btnShow, btnCheck, btnHide);
boxControls.getChildren().addAll(boxBtns, lblResult);
mainPane.setCenter(squarePane);
mainPane.setBottom(boxControls);
boxControls.setAlignment(Pos.CENTER);
boxBtns.setAlignment(Pos.CENTER);
squarePane.setAlignment(Pos.CENTER);
squarePane.setHgap(20);
squarePane.setVgap(20);
boxBtns.setMargin(btnCheck, new Insets(0, 20, 0, 20));
boxControls.setMargin(lblResult, new Insets(10, 0, 20, 0));
//Magic square
square1 = new TextField();
squarePane.add(square1, 0, 0);
square2 = new TextField();
squarePane.add(square2, 1, 0);
square3 = new TextField();
squarePane.add(square3, 2, 0);
square4 = new TextField();
squarePane.add(square4, 0, 1);
square5 = new TextField();
squarePane.add(square5, 1, 1);
square6 = new TextField();
squarePane.add(square6, 2, 1);
square7 = new TextField();
squarePane.add(square7, 0, 2);
square8 = new TextField();
squarePane.add(square8, 1, 2);
square9 = new TextField();
squarePane.add(square9, 2, 2);
Label lblrow1 = new Label();
squarePane.add(lblrow1, 3, 0);
lblrow1.getStyleClass().add("sum");
Label lblrow2 = new Label();
squarePane.add(lblrow2, 3, 1);
lblrow2.getStyleClass().add("sum");
Label lblrow3 = new Label();
squarePane.add(lblrow3, 3, 2);
lblrow3.getStyleClass().add("sum");
Label lblcolumn1 = new Label();
squarePane.add(lblcolumn1, 0, 3);
lblcolumn1.getStyleClass().add("sum");
Label lblcolumn2 = new Label();
squarePane.add(lblcolumn2, 1, 3);
lblcolumn2.getStyleClass().add("sum");
Label lblcolumn3 = new Label();
squarePane.add(lblcolumn3, 2, 3);
lblcolumn3.getStyleClass().add("sum");
squarePane.setHalignment(lblcolumn1, HPos.CENTER);
squarePane.setHalignment(lblcolumn2, HPos.CENTER);
squarePane.setHalignment(lblcolumn3, HPos.CENTER);
//Magic square
//Event Handler
HandleClickCheck handlerCheck = new HandleClickCheck();
handlerCheck.setTxtSquare1(square1);
handlerCheck.setTxtSquare2(square2);
handlerCheck.setTxtSquare3(square3);
handlerCheck.setTxtSquare4(square4);
handlerCheck.setTxtSquare5(square5);
handlerCheck.setTxtSquare6(square6);
handlerCheck.setTxtSquare7(square7);
handlerCheck.setTxtSquare8(square8);
handlerCheck.setTxtSquare9(square9);
handlerCheck.setLblResult(lblResult);
btnCheck.addEventFilter(MouseEvent.MOUSE_CLICKED, handlerCheck);
HandleClickShow handlerShow = new HandleClickShow();
handlerShow.setTxtSquare1(square1);
handlerShow.setTxtSquare2(square2);
handlerShow.setTxtSquare3(square3);
handlerShow.setTxtSquare4(square4);
handlerShow.setTxtSquare5(square5);
handlerShow.setTxtSquare6(square6);
handlerShow.setTxtSquare7(square7);
handlerShow.setTxtSquare8(square8);
handlerShow.setTxtSquare9(square9);
handlerShow.setRow1(lblrow1);
handlerShow.setRow2(lblrow2);
handlerShow.setRow3(lblrow3);
handlerShow.setColumn1(lblcolumn1);
handlerShow.setColumn2(lblcolumn2);
handlerShow.setColumn3(lblcolumn3);
handlerShow.setLblResult(lblResult);
btnShow.addEventFilter(MouseEvent.MOUSE_CLICKED, handlerShow);
HandleClickHide handlerHide = new HandleClickHide();
handlerHide.setRow1(lblrow1);
handlerHide.setRow2(lblrow2);
handlerHide.setRow3(lblrow3);
handlerHide.setColumn1(lblcolumn1);
handlerHide.setColumn2(lblcolumn2);
handlerHide.setColumn3(lblcolumn3);
btnHide.addEventFilter(MouseEvent.MOUSE_CLICKED, handlerHide);
//Event Handler
Scene scene = new Scene(mainPane);
scene.getStylesheets().add(getClass().getResource("Styles.css").toExternalForm());
stage.setScene(scene);
stage.show();
}
public static void main(String[] args){
launch(args);
}
}