2017-08-23 163 views
1

我在FX,CSS和TreeTableView方面有点麻烦。 我有包含蓝色超链接的单元格。现在,如果选中该单元格,背景将变成蓝色,因此该链接几乎不可见。我现在想使用样式表更改选定单元格的背景颜色。更改JavaFX TreeTableView的选择颜色

对于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来得到相同的不满意结果。

我无法在网上找到任何解决方案,因为所有问题似乎都考虑了TreeView或TableViews,而不是TreeTableView。所以任何提示或链接到正确的文档将是非常有益的!

在此先感谢!

P.S: 我知道可以通过改变超链接的颜色来解决问题,但是必须有方法来改变单元格的颜色,对吧?

回答

3

你可以用你提到的-fx-background-color财产使用.tree-table-row-cell选择:

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

enter image description here

,你也可以改变边框的颜色以更好地适应于填充颜色:

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

enter image description here

您可以使用以下方式将更多款式应用于底层表格单元格:

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

啊,非常感谢!并特别感谢与边界的提示! – Rosso

+0

更多关于如何更改文字颜色? -fx-text-fill在这里似乎不起作用... – Rosso

+1

类似'.tree-table-row-cell:selected> * {-fx-text-fill:red; }'应该为文本颜色工作。 – DVarga