为什么 JavaFX 应用程序中的按钮变白了?
Why did the button in JavaFX application turn white?
我希望单击按钮时按钮的边框变为黑色。我使用 setStyle() 来执行此操作,但由于某种原因按钮变成了白色。
在Scenebuilder中就可以了。造成这种现象的原因是什么?如何纠正?
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);
/*...**/
});
如果您调用 setStyle( "some text" ) 将替换为整个样式,而不仅仅是指定的选项。据此,绕过的方法有以下几种:
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" );
我希望单击按钮时按钮的边框变为黑色。我使用 setStyle() 来执行此操作,但由于某种原因按钮变成了白色。
在Scenebuilder中就可以了。造成这种现象的原因是什么?如何纠正?
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);
/*...**/
});
如果您调用 setStyle( "some text" ) 将替换为整个样式,而不仅仅是指定的选项。据此,绕过的方法有以下几种:
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" );