2016-11-12 10 views
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ボタンの下に表示されます:

enter image description here

このようにします。
この下線は何ですか、どのように色を変更できますか?

+0

BTW:値を上書きしない限り、 '#tabButton'ルールで設定したプロパティを繰り返す必要はありません。例えば。 '-fx-background-color:#039BE5;'以外のものは、第2のルールでは不要です。また、あなたのGUIは、たぶんフォーカスされたボタンの外観を変更すること、つまり '#tabButton:hover:focused'のためのルールを指定することで利益を得るでしょう。さらに、複数のノードのスタイルを同じにする必要がある場合は、通常、各ノードに同じIDではないスタイルクラスを使用します。 MainApplication.cssの – fabian

答えて

2

私はあなたがそれを非表示にする場合には、フォーカスに属していると思う:

-fx-background-insets:0; 

または変更色:

-fx-focus-color: red; 
-fx-faint-focus-color: red; 

幸運!

+0

では、すでに色は変更されていますが、下線はまだ白です。 – Person

関連する問題