ボタンをクリックしたときラベルを交互に〇、×と表示させたいのですが、どのようにすればよいか教えていただきたいです。
〇を表示させるところまではできたのですが、二回目以降のクリックで×、〇と交互に表示させる方法がわかりません。
また、〇×を表示させてほかのラベルにクリックを移したとき、すでに〇×を設定したラベルはクリックしても変更できないようにしたいです。
よろしければ回答をよろしくお願いいたします。
java
1import javafx.application.Application; 2import javafx.scene.Scene; 3import javafx.scene.control.*; 4import javafx.scene.layout.*; 5import javafx.stage.Stage; 6 7import javafx.event.ActionEvent; 8import javafx.event.EventHandler; 9 10public class App extends Application { 11 public void start(Stage stage) { 12 13 stage.setTitle("App"); 14 15 Button bt1 = new Button(); 16 Button bt2 = new Button(); 17 Button bt3 = new Button(); 18 Button bt4 = new Button(); 19 Button bt5 = new Button(); 20 Button bt6 = new Button(); 21 Button bt7 = new Button(); 22 Button bt8 = new Button(); 23 Button bt9 = new Button(); 24 bt1.setPrefSize(50, 50); 25 bt2.setPrefSize(50, 50); 26 bt3.setPrefSize(50, 50); 27 bt4.setPrefSize(50, 50); 28 bt5.setPrefSize(50, 50); 29 bt6.setPrefSize(50, 50); 30 bt7.setPrefSize(50, 50); 31 bt8.setPrefSize(50, 50); 32 bt9.setPrefSize(50, 50); 33 34 GridPane root = new GridPane(); 35 GridPane.setConstraints(bt1, 0, 0); 36 GridPane.setConstraints(bt2, 1, 0); 37 GridPane.setConstraints(bt3, 2, 0); 38 GridPane.setConstraints(bt4, 0, 1); 39 GridPane.setConstraints(bt5, 1, 1); 40 GridPane.setConstraints(bt6, 2, 1); 41 GridPane.setConstraints(bt7, 0, 2); 42 GridPane.setConstraints(bt8, 1, 2); 43 GridPane.setConstraints(bt9, 2, 2); 44 root.getChildren().addAll(bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8, bt9); 45 46 EventHandler <ActionEvent> eh1 = new EventHandler <ActionEvent> () { 47 public void handle(ActionEvent event) { 48 Button b = (Button) event.getSource(); 49 if (b == bt1) { 50 b.setText("〇"); 51 52 } else if (b == bt2) { 53 b.setText("〇"); 54 55 } else if (b == bt3) { 56 b.setText("〇"); 57 58 } else if (b == bt4) { 59 b.setText("〇"); 60 61 } else if (b == bt5) { 62 b.setText("〇"); 63 64 } else if (b == bt6) { 65 b.setText("〇"); 66 67 } else if (b == bt7) { 68 b.setText("〇"); 69 70 } else if (b == bt8) { 71 b.setText("〇"); 72 73 } else if (b == bt9) { 74 b.setText("〇"); 75 } 76 } 77 }; 78 79 bt1.setOnAction(eh1); 80 bt2.setOnAction(eh1); 81 bt3.setOnAction(eh1); 82 bt4.setOnAction(eh1); 83 bt5.setOnAction(eh1); 84 bt6.setOnAction(eh1); 85 bt7.setOnAction(eh1); 86 bt8.setOnAction(eh1); 87 bt9.setOnAction(eh1); 88 89 Scene scene = new Scene(root); 90 stage.setScene(scene); 91 stage.show(); 92 } 93 94 public static void main(String[] args) { 95 launch(); 96 } 97}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/23 10:59 編集