更改JavaFX TreeTableView的选择颜色

Ros*_*sso 2 css java javafx treetableview javafx-css

关于FX,CSS和TreeTableView,我遇到了一些麻烦.我有包含蓝色超链接的单元格.现在,如果选择了单元格,则背景变为蓝色,因此链接几乎不可见.我现在想用Stylesheets更改所选单元格的背景颜色.

对于TreeView,以下工作正常:

.tree-view .tree-cell:selected{
    -fx-background-color: green;
}
Run Code Online (Sandbox Code Playgroud)

所以类似地我试过:

.tree-table-view .tree-table-cell:selected{
    -fx-background-color: green;
}
Run Code Online (Sandbox Code Playgroud)

但这没有效果.令人惊讶的是,虽然我能够改变一般的背景颜色:

.tree-table-view .tree-table-cell{
    -fx-background-color: yellow;
}
Run Code Online (Sandbox Code Playgroud)

细胞现在都是黄色的,但这似乎覆盖了默认的选择模式,因为现在即使选择的行也有黄色背景.

对我来说,似乎状态选择器不适用于TreeTableView单元格,但我不知道如何以另一种方式实现.

我还尝试使用JavaFX文档中的示例15-2,获得了相同的不满意结果.

我无法在网上找到任何解决方案,因为所有问题似乎都是关于TreeViews或TableViews而不是组合的TreeTableView.所以任何提示或链接到正确的文档将是非常有帮助的!

提前致谢!

PS:我知道可以通过改变超链接的颜色来解决这个问题但是必须有办法改变单元格的颜色,对吗?

DVa*_*rga 6

您可以将.tree-table-row-cell选择器与-fx-background-color您提到的属性一起使用:

.tree-table-row-cell:selected {
    -fx-background-color: green;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您还可以更改边框颜色以更好地适应填充颜色:

.tree-table-row-cell:selected {
    -fx-background-color: green;
    -fx-table-cell-border-color: green;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您可以使用以下方法将更多样式应用于基础表格单元格:

.tree-table-row-cell:selected > .tree-table-cell{
    /*enter style rules here*/
}
Run Code Online (Sandbox Code Playgroud)

  • 像`.tree-table-row-cell:selected>*{-fx-text-fill:red; }`应该适用于文本颜色. (2认同)