我有TableView<TypeReport> tv
和列
tc_name.setCellValueFactory(new PropertyValueFactory<>("name"));
我想行大胆,如果日期tc_name
的细胞不" "
开始。
我用:
tv.setRowFactory(new Callback<TableView<TypeReport>, TableRow<TypeReport>>() {
@Override
public TableRow<TypeReport> call(TableView<TypeReport> param) {
return new TableRow<TypeReport>() {
@Override
protected void updateItem(TypeReport item, boolean empty) {
if (item==null) {
setStyle("");
} else {
String res=item.getName();
if (res.startsWith(" ")){}
else
setStyle("-fx-font-weight: bold");
}
}
};
}
});
当我打开应用程序,需要排很大胆,但是当我滚动,一些不同的行大胆。
您需要删除的样式行,其项目名称与" "
开始。 (请注意,您还需要调用super.updateItem(...)
):
@Override
protected void updateItem(TypeReport item, boolean empty) {
super.updateItem(item, empty);
if (item==null) {
setStyle("");
} else {
String res=item.getName();
if (res.startsWith(" ")) {
setStyle("");
} else
setStyle("-fx-font-weight: bold");
}
}
或者,等价(但用更少的代码):
@Override
protected void updateItem(TypeReport item, boolean empty) {
super.updateItem(item, empty);
if (item==null || item.getName().startsWith(" ")) {
setStyle("");
} else {
setStyle("-fx-font-weight: bold");
}
}