JavaFX 样式复选框
JavaFX style checkbox
我使用这个 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
感谢您的帮助
这行不通。 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;");
使用 JavaFX 中的 setStyle() 方法,您可以使用 class 代码中的 css 代码设置组件的默认状态样式,但我认为您无法更改所选州 css。我建议只给节点一个带有 node.setID("someID") 的唯一 ID,然后在实际的 css 文件中工作
我使用这个 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
感谢您的帮助
这行不通。 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;");
使用 JavaFX 中的 setStyle() 方法,您可以使用 class 代码中的 css 代码设置组件的默认状态样式,但我认为您无法更改所选州 css。我建议只给节点一个带有 node.setID("someID") 的唯一 ID,然后在实际的 css 文件中工作