JavaFX样式复选框

JavaFX样式复选框,javafx,checkbox,javafx-9,Javafx,Checkbox,Javafx 9,我使用这个css脚本,它包含在setStyle中: checkBox.setStyle("" + ".check-box:selected > .box {\n" + " /* background color for selected checkbox */\n" + " -fx-background-color: lime;\n" + "}\n" + "\

我使用这个css脚本,它包含在
setStyle
中:

checkBox.setStyle("" +
            ".check-box:selected > .box {\n" +
            "    /* background color for selected checkbox */\n" +
            "    -fx-background-color: lime;\n" +
            "}\n" +
            "\n" +
            ".check-box > .box {\n" +
            "    /* background color of unselected checkbox */\n" +
            "    -fx-background-color: red;\n" +
            "}\n" +
            "\n" +
            ".check-box:selected > .box > .mark,\n" +
            ".check-box:indeterminate  > .box > .mark {\n" +
            "    /* modify mark color */\n" +
            "    -fx-background-color: blue;\n" +
            "}");
但它不起作用

我使用
Java9


谢谢你的帮助

这行不通。
样式
属性只能包含属性指定,不能包含选择器

您可以使用样式表和
style
属性的组合,通过使用查找颜色来指定这些颜色(但仅适用于颜色):

CSS样式表
。复选框{
/*默认属性*/
所选框颜色:黑色;
盒子颜色:黑色;
标记颜色:白色;
}
.复选框:选中>.框{
/*选中复选框的背景色*/
-fx背景色:选择框颜色;
}
.复选框>.box{
/*未选中复选框的背景色*/
-fx背景颜色:框颜色;
}
.复选框:选中>.box>.mark,
.复选框:不确定>.box>.mark{
/*修改标记颜色*/
-fx背景色:标记颜色;
}
Java代码
使用JavaFX中的setStyle()方法,您可以在类代码中使用css代码为组件的默认状态设置样式,但是我认为您不能更改选定状态的css。我建议只使用node.setID(“someID”)给节点一个唯一的ID,然后在实际的css文件中工作

@RasFlor请仔细检查样式表是否正确添加到场景/复选框的祖先。我刚刚测试了这个,我确实有效。说一些“不起作用”的话并不能帮助任何人解决问题。请阅读本文以了解更多信息。
// overwrite colors from stylesheet
checkBox.setStyle("selected-box-color: lime; box-color: red; mark-color: blue;");