首页 > 解决方案 > 如何使用 setStyle() 为复选框的 css 设置样式

问题描述

让我保持简短。

所以。我知道您可以CheckBox在 CSS 中设置 .box 的样式,例如:

.check-box > .box {
    -fx-background-color: white;
}

但我不确定如何在线。请仅提供示例代码。谢谢。

标签: javajavafxjavafx-css

解决方案


内联样式仅适用于节点本身,不适用于子节点。除非您愿意使用内联样式lookup访问子节点,否则您将无法直接为子节点设置样式。这仅在创建皮肤之后才有效,尽管这通常发生在第一个布局传递之前,如果您想从 fxml/controller 执行此操作,这可能会造成问题initialize

modena.css包含以下针对(un)focused es的.box子级的声明:CheckBox

-fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
-fx-background-color: -fx-focus-color, -fx-inner-border, -fx-body-color, -fx-faint-focus-color, -fx-body-color;

即它包含从父级继承的查找颜色,因此可以在以下位置使用内联 css 进行分配CheckBox

checkBox.setStyle("-fx-body-color: red;");

推荐阅读