質問するログイン新規登録

回答編集履歴

1

コントローラ全体

2020/09/01 08:23

投稿

TN8001
TN8001

スコア10180

answer CHANGED
@@ -3,11 +3,54 @@
3
3
 
4
4
  fxmlで割り当ててもいいですが、面倒なのでコードで^^;
5
5
  ```Java
6
+ import java.net.URL;
7
+ import java.util.ResourceBundle;
8
+
9
+ import javafx.event.ActionEvent;
10
+ import javafx.event.EventHandler;
11
+ import javafx.fxml.FXML;
12
+ import javafx.fxml.Initializable;
13
+ import javafx.scene.control.MenuItem;
14
+ import javafx.scene.control.SplitMenuButton;
15
+
16
+ public class Controller implements Initializable {
17
+ @FXML
18
+ private SplitMenuButton selectButton;
19
+
20
+ @FXML
21
+ void On_selentButton1(ActionEvent event) {
22
+ // SplitMenuButtonを押したときにテキストによって処理を分岐
23
+ switch (selectButton.getText()) {
24
+ case "全て":
25
+ System.out.println("全て");
26
+ break;
27
+ case "未検品":
28
+ System.out.println("未検品");
29
+ break;
30
+ case "検品中":
31
+ System.out.println("検品中");
32
+ break;
33
+ case "検品済":
34
+ System.out.println("検品済");
35
+ break;
36
+ case "中断中":
37
+ System.out.println("中断中");
38
+ break;
39
+ }
40
+ }
41
+
6
- @Override
42
+ @Override
7
- public void initialize(URL location, ResourceBundle resources) {
43
+ public void initialize(URL location, ResourceBundle resources) {
44
+ // SplitMenuButtonのメニューを選んだ時にテキストを変える
8
- selectButton.getItems().forEach(m -> m.setOnAction(event -> {
45
+ selectButton.getItems().forEach(m -> m.setOnAction(e -> selectButton.setText(m.getText())));
46
+ // ↑↓同じ意味
9
- MenuItem menuItem = (MenuItem) event.getSource();
47
+ // for (MenuItem menuItem : selectButton.getItems()) {
48
+ // menuItem.setOnAction(new EventHandler<ActionEvent>() {
49
+ // @Override public void handle(ActionEvent event) {
10
- selectButton.setText(menuItem.getText());
50
+ // selectButton.setText(menuItem.getText());
51
+ // }
52
+ // });
53
+ // }
11
- }));
54
+ }
12
55
  }
13
56
  ```