実現したいこと
JavaFxのFXMLにおいて、ラベルを何個も羅列しているもののfx:idを効率的に管理したい。
前提
JavaFxとFXMlを使用していて、縦に10個ほどラベルがあり、それぞれに色を割り当てたり文字を変えたりしたいです。
開発の都合上、表などの使用は考えていません。
わからないですが、idをString型で指定したりできないですかね....
発生している問題・エラーメッセージ
Controller↓
java
1//割り当てたいCSS 2private final String selectedCss = "-fx-background-color: lightblue;-fx-border-width: 1px;-fx-border-color: black;"; 3private final String notSelectedCss = "-fx-background-color: white;-fx-border-width: 1px;-fx-border-color: black;"; 4 5//それぞれの項目の取得 6@FXML 7private Label label1; 8@FXML 9private Label label2; 10@FXML 11private Label label3; 12@FXML 13private Label label4; 14@FXML 15private Label label5; 16@FXML 17private Label label6; 18 19//例えば初期化 20public void initialize() { 21 label1.setStyle(selectedCss); 22 label2.setStyle(notSelectedCss); 23 label3.setStyle(notSelectedCss); 24 label4.setStyle(notSelectedCss); 25 label5.setStyle(notSelectedCss); 26 label6.setStyle(notSelectedCss); 27} 28 29//たとえば下にシフト 30private int verticalNumber = 6; 31private int verticalCount = 0; 32public void getDownKey() { 33 if (verticalCount < verticalNumber - 1) { 34 verticalCount += 1; 35 switch (verticalCount) { 36 case 1: 37 label2.setStyle(selectedCss); 38 label1.setStyle(notSelectedCss); 39 break; 40 case 2: 41 label3.setStyle(selectedCss); 42 label2.setStyle(notSelectedCss); 43 break; 44 case 3: 45 label4.setStyle(selectedCss); 46 label3.setStyle(notSelectedCss); 47 break; 48 case 4: 49 label5.setStyle(selectedCss); 50 label4.setStyle(notSelectedCss); 51 break; 52 case 5: 53 label6.setStyle(selectedCss); 54 label5.setStyle(notSelectedCss); 55 break; 56 } 57 } 58} 59//このように一つ一つ設定していくしかわからないです.....
FXML (レイアウト情報は省略)↓
FXML
1 2<Label fx:id="label1" text="Label1" /> 3<Label fx:id="label2" text="Label2" /> 4<Label fx:id="label3" text="Label3" /> 5<Label fx:id="label4" text="Label4" /> 6<Label fx:id="label5" text="Label5" /> 7<Label fx:id="label6" text="Label6" />
試したこと
一つ一つのidに対して処理を書き、switch文でごり押ししていました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/14 03:21