Igo*_*ese 2 css javafx selection tableview tablecell
我有一个JavaFX TableView和ListView,它们都使用自定义单元格工厂。特别是我已经重写了updateItem方法,以便根据单元格值绑定特定的CSS类。
这是我的CSS文件的一部分:
.tissueCell {
-fx-text-fill: #F5AD11;
}
.tissueCell:selected {
-fx-background-color: #F5AD11;
-fx-text-fill: white;
}
.significantDataCell {
-fx-background-color: yellow;
-fx-text-fill: black;
}
.significantDataCell:selected {
-fx-background-color: white;
-fx-text-fill: black;
}
Run Code Online (Sandbox Code Playgroud)
对于ListView,一切都可以正常工作:以正确的颜色显示文本,并且在选择单元格时,文本变为白色,而背景则以正确的颜色填充。
我遇到了TableView问题。取消选择时,单元格中的文本将以选定的颜色显示,但是,当选定单元格时,背景将使用选定表单元格背景的默认JavaFX颜色填充,并且文本颜色将保持为#F5AD11(不会变为白色)。
使用.significantDataCell类的TableCell也会发生相同的情况。单元格以黄色背景和黑色文本正确显示,但是选择时没有任何变化,这次不会作为背景。
有任何想法吗?我做了很多研究,但找不到任何可行的解决方案。
默认情况下,TableViews不允许选择单个单元格,但允许选择行。因此,选择器.table-cell:selected在默认选择模式下从不匹配任何单元格。在这种情况下,您需要
.table-row-cell:selected .table-cell {
/* style definitions */
}
Run Code Online (Sandbox Code Playgroud)
或您的情况
.table-row-cell:selected .tissue-cell {
-fx-background-color: #F5AD11;
-fx-text-fill: white;
}
Run Code Online (Sandbox Code Playgroud)
等等
如果允许表使用单元格选择,请调用
myTableView.setCellSelectionEnabled(true);
Run Code Online (Sandbox Code Playgroud)
然后通过单击鼠标右键(例如)选择单个单元格,这样您的原始CSS就可以使用。