1 import javafx.application.Application;
2 import javafx.geometry.Pos;
3 import javafx.stage.Stage;
4 import javafx.scene.Scene;
5 import javafx.scene.control.Button;
6 import javafx.scene.control.Label;
7 import javafx.scene.control.TextField;
8 import javafx.scene.layout.BorderPane;
9 import javafx.scene.layout.HBox;
10
11 public class BSTAnimation extends Application {
12 @Override
13 public void start(Stage primaryStage) {
14 BST<Integer> tree = new BST<>();
15
16 BorderPane pane = new BorderPane();
17 BTView view = new BTView(tree);
18 pane.setCenter(view);
19
20 TextField tfKey = new TextField();
21 tfKey.setPrefColumnCount(3);
22 tfKey.setAlignment(Pos.BASELINE_RIGHT);
23 Button btInsert = new Button("Insert");
24 Button btDelete = new Button("Delete");
25 HBox hBox = new HBox(5);
26 hBox.getChildren().addAll(new Label("Enter a key: "),
27 tfKey, btInsert, btDelete);
28 hBox.setAlignment(Pos.CENTER);
29 pane.setBottom(hBox);
30
31 btInsert.setOnAction(e -> {
32 int key = Integer.parseInt(tfKey.getText());
33 if (tree.search(key)) {
34 view.displayTree();
35 view.setStatus(key + " is already in the tree");
36 }
37 else {
38 tree.insert(key);
39 view.displayTree();
40 view.setStatus(key + " is inserted in the tree");
41 }
42 });
43
44 btDelete.setOnAction(e -> {
45 int key = Integer.parseInt(tfKey.getText());
46 if (!tree.search(key)) {
47 view.displayTree();
48 view.setStatus(key + " is not in the tree");
49 }
50 else {
51 tree.delete(key);
52 view.displayTree();
53 view.setStatus(key + " is deleted from the tree");
54 }
55 });
56
57
58 Scene scene = new Scene(pane, 450, 250);
59 primaryStage.setTitle("BSTAnimation");
60 primaryStage.setScene(scene);
61 primaryStage.show();
62 }
63
64
68 public static void main(String[] args) {
69 launch(args);
70 }
71 }