-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMyMenuBar.java
127 lines (113 loc) · 4.39 KB
/
MyMenuBar.java
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
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.stage.Stage;
import jdk.nashorn.internal.scripts.JO;
import javax.swing.*;
import java.io.FileNotFoundException;
public class MyMenuBar extends MenuBar {
Stage stage = new Stage();
void setStage(Stage primaryStage){
stage = primaryStage;
}
MyMenuBar(TestGame testGame){
Menu menuFile = new Menu("File");
MenuItem loadItem = new MenuItem("Load");
loadItem.setOnAction(event -> {
try {
testGame.loadGame();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
testGame.createAndShowGameView(stage);
});
MenuItem saveItem = new MenuItem("Save");
saveItem.setOnAction(event -> {
try {
if(testGame.canSave ) testGame.saveGame();
else {
JOptionPane.showMessageDialog(null,"沙盒模式不能存档");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
});
menuFile.getItems().addAll(loadItem, saveItem);
// add settings menu
Menu menuSetting = new Menu("Settings");
Menu themeMenu = new Menu("Theme");
ToggleGroup themeGroup = new ToggleGroup();
RadioMenuItem snowTheme = new RadioMenuItem("snow");
snowTheme.setToggleGroup(themeGroup);
RadioMenuItem grassTheme = new RadioMenuItem("grass");
grassTheme.setToggleGroup(themeGroup);
themeMenu.getItems().addAll(snowTheme, grassTheme);
Menu sandboxMenu = new Menu("Sandbox mode");
ToggleGroup levelGroup = new ToggleGroup();
RadioMenuItem level1 = new RadioMenuItem("maze-1");
level1.setToggleGroup(levelGroup);
RadioMenuItem level2 = new RadioMenuItem("maze-2");
level2.setToggleGroup(levelGroup);
RadioMenuItem level3 = new RadioMenuItem("maze-3");
level3.setToggleGroup(levelGroup);
RadioMenuItem level4 = new RadioMenuItem("maze-4");
level4.setToggleGroup(levelGroup);
sandboxMenu.getItems().addAll(level1,level2,level3,level4);
Menu storyMenu = new Menu("Story mode");
ToggleGroup newStart = new ToggleGroup();
RadioMenuItem startFromMaze1 = new RadioMenuItem("start from maze-1");
startFromMaze1.setToggleGroup(newStart);
storyMenu.getItems().addAll(startFromMaze1);
menuSetting.getItems().addAll(themeMenu,sandboxMenu,storyMenu);
// add help menu
Menu menuHelp = new Menu("Help");
MenuItem howToPlay = new MenuItem("How to Play");
menuHelp.getItems().add(howToPlay);
this.getMenus().addAll(menuFile, menuSetting, menuHelp);
howToPlay.setOnAction(event -> {
testGame.showHelpScene(testGame.a);
});
snowTheme.setOnAction(event -> {
testGame.a = 2;
testGame.isThemeChanged = 1;
});
grassTheme.setOnAction(event -> {
testGame.a = 1;
testGame.isThemeChanged = 1;
});
level1.setOnAction(event -> {
testGame.refresh.stop();
testGame.canSave = false;
testGame.monMoveAni.stop();
testGame.clear();
testGame.mazeGame(stage,1,2,3);
});
level2.setOnAction(event -> {
testGame.refresh.stop();
testGame.canSave = false;
testGame.monMoveAni.stop();
testGame.clear();
testGame.mazeGame(stage,2,2,3);
});
level3.setOnAction(event -> {
testGame.refresh.stop();
testGame.canSave = false;
testGame.monMoveAni.stop();
testGame.clear();
testGame.mazeGame(stage,3,2,3);
});
level4.setOnAction(event -> {
testGame.refresh.stop();
testGame.canSave = false;
testGame.monMoveAni.stop();
testGame.clear();
testGame.mazeGame(stage,4,2,3);
});
startFromMaze1.setOnAction(event -> {
testGame.refresh.stop();
testGame.canSave = true;
testGame.clear();
testGame.monMoveAni.stop();
testGame.durGame(stage,1,1,3);
});
}
}