JavaFX 8如何修改CheckBoxTreeItem对应复选框的CSS样式
解决方案
JavaFX 8 的 CheckBox 控件通过内部嵌套的子节点实现渲染,你之前的写法没有命中实际负责渲染的子元素,所以无法生效。使用以下CSS即可实现需求:
.tree-view .check-box-tree-cell .check-box > .box { /* 需求1:复选框背景色 */ -fx-background-color: black; /* 需求2:复选框边框颜色,可自行调整边框宽度、圆角适配你的界面 */ -fx-border-color: orange; -fx-border-width: 1px; -fx-border-radius: 3px; } /* 需求3:复选框选中状态下内部标记的颜色 */ .tree-view .check-box-tree-cell .check-box:selected > .box > .mark { -fx-background-color: #fff; /* 可替换为你需要的任意颜色 */ } /* 可选:如果需要调整半选状态的标记颜色,添加以下代码 */ .tree-view .check-box-tree-cell .check-box:indeterminate > .box > .mark { -fx-background-color: #ccc; }
如果样式还是没有生效,可以在代码中给TreeView设置自定义的样式类,再在CSS中限定范围,避免全局样式冲突:
// Java代码中添加自定义样式类 treeView.getStyleClass().add("custom-tree-view");
对应的CSS调整为:
.custom-tree-view .check-box-tree-cell .check-box > .box { /* 样式属性同上 */ }
内容的提问来源于stack exchange,提问作者rak
相关产品推荐
相关产品推荐

