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