回答編集履歴

2

質問文に合わせる形で修正

2018/03/22 21:25

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -119,3 +119,115 @@
119
119
  0. [JavaFX ToggleButton set color and restore default color
120
120
 
121
121
  ](https://stackoverflow.com/questions/37693835/javafx-togglebutton-set-color-and-restore-default-color)
122
+
123
+
124
+
125
+ ---
126
+
127
+ 2018/03/23追加
128
+
129
+
130
+
131
+ > ボタンが押されてボタンの背景色が変わり、もう一度ボタンが押されたら「色を直接指定せず元の状態の色(デフォルトの色)に戻す
132
+
133
+
134
+
135
+ トグルボタンなら以下のソースコードで可能です。
136
+
137
+ 他のボタンに関しては知らないです、選択状態の疑似CSSクラスがあるかはお手数ですが、参考情報にCSSリファレンス・ガイドを記載しましたので、調査してくださいな。
138
+
139
+
140
+
141
+ ```Java
142
+
143
+ import javafx.application.Application;
144
+
145
+ import javafx.stage.Stage;
146
+
147
+
148
+
149
+ import javafx.scene.Scene;
150
+
151
+ import javafx.scene.control.ToggleButton;
152
+
153
+ import javafx.scene.layout.VBox;
154
+
155
+ import javafx.geometry.Pos;
156
+
157
+
158
+
159
+ public class A118646 extends Application {
160
+
161
+
162
+
163
+ @Override
164
+
165
+ public void start(Stage stage) throws Exception {
166
+
167
+
168
+
169
+ ToggleButton favoriteButton = new ToggleButton("お気に入り");
170
+
171
+ VBox layout = new VBox(10);
172
+
173
+ layout.setAlignment(Pos.CENTER);
174
+
175
+ layout.getChildren().setAll(favoriteButton);
176
+
177
+ layout.getStylesheets().add(getClass().getResource("colored-toggle.css").toExternalForm());
178
+
179
+
180
+
181
+ stage.setTitle("JavaFX");
182
+
183
+ stage.setResizable(false);
184
+
185
+ stage.setScene(new Scene(layout, 400, 300));
186
+
187
+ stage.show();
188
+
189
+ }
190
+
191
+
192
+
193
+ public static void main(String[] args) {
194
+
195
+
196
+
197
+ launch(args);
198
+
199
+ }
200
+
201
+
202
+
203
+ }
204
+
205
+
206
+
207
+ ```
208
+
209
+
210
+
211
+ colored-toggle.css
212
+
213
+
214
+
215
+ ```css
216
+
217
+ .toggle-button:selected {
218
+
219
+ -fx-background-color:#f4f162
220
+
221
+ }
222
+
223
+ ```
224
+
225
+
226
+
227
+ ■参考情報
228
+
229
+ 0. [JavaFX CSSリファレンス・ガイド togglebutton](https://docs.oracle.com/javase/jp/8/javafx/api/javafx/scene/doc-files/cssref.html#togglebutton)
230
+
231
+ 0. [How to make a button appear to have been clicked or selected? (JavaFX2)
232
+
233
+ ](https://stackoverflow.com/questions/15819242/how-to-make-a-button-appear-to-have-been-clicked-or-selected-javafx2)

1

追記

2018/03/22 21:25

投稿

umyu
umyu

スコア5846

test CHANGED
@@ -45,6 +45,10 @@
45
45
 
46
46
 
47
47
  ToggleButton favoriteButton = new ToggleButton("お気に入り");
48
+
49
+ // デフォルトの背景色を変更したい時は初期設定も以下の初期設定も忘れずに。
50
+
51
+ // favoriteButton.setStyle("-fx-base: #f2f2f2");
48
52
 
49
53
  favoriteButton.setOnAction(event -> {
50
54