Почему кнопка в приложении JavaFX стала белой? - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу, чтобы граница кнопки стала черной, когда вы нажимаете на кнопку. Я использую setStyle () для этого, но по какой-то причине кнопка становится белой.

А в Scenebuilder все в порядке. В чем может быть причина этого явления и как его можно исправить?

Layout in the Scenebuilder

Application state afler click on the Button

view.getAddActivityButton().setOnMouseClicked(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
    Button act = view.getAddActivityButton();
    Button search = view.getAddSearchActivityButton();
                    view.getToolbarActivityPanel().getItems().remove(view.getAddActivityButton());
                    view.getToolbarActivityPanel().getItems().remove(view.getAddSearchActivityButton());

    TextField nameOfActivityTextField = new TextField();
                     view.getToolbarActivityPanel().getItems().add(0,newActivityHBox);
    newActivityHBox.getChildren().add(0, act);
    newActivityHBox.setMargin(act,new Insets(0));
    act.setStyle("-fx-border-color: black;");
    nameOfActivityTextField.setMaxHeight(Integer.MAX_VALUE);
    newActivityHBox.getChildren().add(1,nameOfActivityTextField);
    newActivityHBox.getChildren().add(2, search);
/*...**/

 });

1 Ответ

0 голосов
/ 08 мая 2018

Если вы вызываете setStyle («некоторый текст»), он заменяется целым стилем, а не только указанной опцией. Соответственно есть несколько способов обойти:

1) act.setStyle("-fx-border-color: black;-fx-background-color: black");

2)

act.getStyleClass().add( "blackButton" );
//act.setId( "blackButton" );
.blackButton {
/*#blackButton {*/
    -fx-background-color: black;
    -fx-border-color: white;
}
act.setStyle( "-fx-border-color: black;" );

3)

act.getStyleClass().add( "blackButton" );
.blackButton {
    -fx-background-color: black;
    -fx-border-color: white;
}
#blackBorder {
    -fx-border-color: black;
}
act.setId( "blackBorder" );
...