在代码中覆盖 JavaFX CSS 样式

Override JavaFX CSS style in code

是否可以在代码中覆盖 JavaFX CSS 定义?

例如,在我的 CSS 文件中,我定义了一个按钮的高度,如下所示:

.button {
    -fx-pref-height: 30px;
}

当我尝试在代码中覆盖某些按钮的高度时...

Button button = new Button();
button.setPrefSize(100, 50); // width, height

...按钮的高度仍为 30 像素。

有两种解决方案:

  1. 确保在 Button 可见后调用 button.setPrefSize(100, 50); // width, height
  2. 使用绑定来强制其大小(CSS 不会覆盖绑定值),例如:button.prefHeightProperty().bind(new SimpleDoubleProperty(60));