更改 JavaFX TreeTableView 的选择颜色

Change selection color of a JavaFX TreeTableView

我在 FX、CSS 和 TreeTableView 方面遇到了一些麻烦。 我有包含蓝色 Hyperlinks 的单元格。现在,如果单元格被选中,背景变为蓝色,因此 link 实际上是不可见的。我现在想使用样式表更改选定单元格的背景颜色。

对于 TreeView,以下工作正常:

.tree-view .tree-cell:selected{
    -fx-background-color: green;
}

所以类似地我试过了:

.tree-table-view .tree-table-cell:selected{
    -fx-background-color: green;
}

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

.tree-table-view .tree-table-cell{
    -fx-background-color: yellow;
}

单元格现在都是黄色的,但这似乎覆盖了默认的选择模式,因为现在即使选定的行也有黄色背景。

对我来说,状态选择器似乎不适用于 TreeTableView 单元格,但我不知道如何通过其他方式实现这一点。

我也使用 JavaFX 文档中的 Example 15-2 进行了尝试,得到了同样令人不满意的结果。

我无法在网上找到任何解决方案,因为所有问题似乎都与 TreeViews 或 TableViews 有关,而不是组合的 TreeTableView。因此,对正确文档的任何提示或 link 都会非常有帮助!

提前致谢!

P.S: 我知道可以通过改变 Hyperlink 的颜色来解决这个问题,但是一定有办法改变单元格的颜色,对吗?

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

.tree-table-row-cell:selected {
    -fx-background-color: green;
}

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

.tree-table-row-cell:selected {
    -fx-background-color: green;
    -fx-table-cell-border-color: green;
}

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

.tree-table-row-cell:selected > .tree-table-cell{
    /*enter style rules here*/
}