-2

我使用这个 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" +
            "}");

但它不起作用....

我用Java 9

谢谢你的帮助

4

2 回答 2

2

这行不通。style属性只能包含属性分配,不能包含选择器。

您可以使用样式表和属性的组合来分配这些颜色,style尽管使用查找的颜色(但仅适用于颜色):

CSS 样式表

.check-box {
    /* default properties */
    selected-box-color: black;
    box-color: black;
    mark-color: white;
}

.check-box:selected > .box {
    /* background color for selected checkbox */
    -fx-background-color: selected-box-color;
}

.check-box > .box {
    /* background color of unselected checkbox */
    -fx-background-color: box-color;
}

.check-box:selected > .box > .mark,
.check-box:indeterminate  > .box > .mark {
    /* modify mark color */
    -fx-background-color: mark-color;
}

Java 代码

// overwrite colors from stylesheet
checkBox.setStyle("selected-box-color: lime; box-color: red; mark-color: blue;");
于 2018-09-01T17:20:30.367 回答
0

使用 JavaFX 中的 setStyle() 方法,您可以使用类代码中的 css 代码设置组件的默认状态,但我认为您不能更改所选状态的 css。我建议只使用 node.setID("someID") 给节点一个唯一的 ID,然后在实际的 css 文件中工作

于 2018-09-01T23:45:19.617 回答