0
Button
を作って、Rectangle
で整形し、背景色を変更しました。JavaFXフォーカスボタンアンダーライン
ソースコード:
MainApplication.java:
AnchorPane anchor = new AnchorPane();
anchor.maxWidth(325);
Button[] buttons = new Button[3];
String[] buttonName = new String[]{"Player","World","Log"};
for (int i = 0 ; i < 3 ; i ++){
Button button = new Button();
button.setText(buttonName[i]);
button.setShape(new Rectangle(100, 25));
button.setMaxWidth(100);
button.setMinWidth(100);
button.setMaxHeight(25);
button.setMinHeight(25);
button.setId("tabButton");
StackPane stack = new StackPane();
stack.setMaxWidth(100);
stack.setMaxHeight(25);
stack.setMinWidth(100);
stack.setMinHeight(25);
RippingCircle circle = new RippingCircle();//just a rippleAnimation
circle.setToSize(Math.sqrt(100 * 100 + 25 * 25));
circle.setFromSize(0.0);
circle.setFill(Color.rgb(0, 0, 0, 0.2));
Rectangle clip = new Rectangle(-50, -12.5, 100, 25);
circle.setClip(clip);
stack.getChildren().addAll(button, circle);
stack.setLayoutX(100 * i);
stack.setLayoutY(0);
button.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent){
StackPane.setMargin(circle, new Insets((mouseEvent.getY() - 12.5) * 2, 0, 0, (mouseEvent.getX() - 50) * 2));
clip.setX(-mouseEvent.getX());
clip.setY(-mouseEvent.getY());
circle.play();
}
});
button.setOnMouseReleased(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent){
circle.stop();
}
});
anchor.getChildren().add(stack);
buttons[i] = button;
}
MainApplication.css:
#tabButton {
-fx-background-color: #03A9F4;
-fx-text-fill: rgba(150,255,255,255);
-fx-font: 12 Arial;
-fx-focus-color: #FFEB3B;
-fx-faint-focus-color: #FFEB3B;
-fx-accent: #FFEB3B;
}
#tabButton:hover {
-fx-background-color: #039BE5;
-fx-text-fill: rgba(150,255,255,255);
-fx-font: 12 Arial;
-fx-focus-color: #FFEB3B;
-fx-faint-focus-color: #FFEB3B;
-fx-accent: #FFEB3B;
}
#tabButton:focused {
-fx-background-color: #03A9F4;
-fx-text-fill: rgba(255,255,255,255);
-fx-font: 12 Arial;
-fx-focus-color: black;
-fx-faint-focus-color: black;
}
それが集中したときに、下線がPlayer
ボタンの下に表示されます:
このようにします。
この下線は何ですか、どのように色を変更できますか?
BTW:値を上書きしない限り、 '#tabButton'ルールで設定したプロパティを繰り返す必要はありません。例えば。 '-fx-background-color:#039BE5;'以外のものは、第2のルールでは不要です。また、あなたのGUIは、たぶんフォーカスされたボタンの外観を変更すること、つまり '#tabButton:hover:focused'のためのルールを指定することで利益を得るでしょう。さらに、複数のノードのスタイルを同じにする必要がある場合は、通常、各ノードに同じIDではないスタイルクラスを使用します。 MainApplication.cssの – fabian