我得到这样的TableView:
TableView tableView = (TableView) ((AnchorPane) node).getChildren().get(0);
用
等数据填充它tableView.setItems(FXCollections.observableList(vehicles));
这部分是好的。但是,我想更改tableView中当前行的字体属性,我无法知道如何操作
我不想设置tableView.getSelectionModel().setCellSelectionEnabled(true);
,因为我想显示整行的选择,而不是单个单元格
我尝试在TableRow和Tabliew上应用一些css样式但没有任何成功。
有没有办法在TableView中更改当前所选行的字体属性?
答案 0 :(得分:5)
Tableview css样式是微妙而复杂的。
解决方案
转到默认JavaFX控件css的源代码,并将具有.table-view
psuedo-class的所有:selected
部分复制到您自己的用户样式表中。
从您复制的每个css选择器部分中删除默认属性设置规则,并将其替换为您要为所选行应用的css。
由于存在大量:selected
规则,您可能需要在几个位置复制相同的属性设置(类似于定义默认属性值的方式)。
背景资源
各个版本的默认样式表是:
如果您感到困惑,请咨询css reference guide和css tutorials。
快速换色修复
请注意,如果只需要为选择栏文本设置填充颜色,则可以使用单个语句使用自己的常量覆盖默认常量颜色:
.root { -fx-selection-bar-text: firebrick; }
只需替换你想要的任何颜色的耐火砖。同样,-fx-selection-bar: midnightblue;
可用于更改文本背景的颜色。
答案 1 :(得分:0)
此CSS规则可能有效:
#mytable .table-cell {
-fx-text-fill:red ;
-fx-border-color: none;
}
#mytable .table-cell:hover {
-fx-text-fill: rgb(103,183,89) ;
-fx-border-color: none;
}