回答編集履歴
2
質問文に合わせる形で修正
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
追記
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
|
|