如何在TableView JavaFX中为某些行设置粗体true

如何在TableView JavaFX中为某些行设置粗体true,javafx,Javafx,我有TableView电视和专栏 tc_name.setCellValueFactory(new PropertyValueFactory<>("name")); 当我打开应用程序时,需要的行是粗体的,但当我滚动时,一些不同的行是粗体的。您需要删除项目名称以开头的行的样式。。(注意,您还需要调用super.updateItem(…)): 或者,等效地(但代码较少): 现在JavaFX11.0.2似乎打破了这一点——有人能证实吗? tv.setRowFactory(new Callb

我有
TableView电视和专栏

tc_name.setCellValueFactory(new PropertyValueFactory<>("name"));

当我打开应用程序时,需要的行是粗体的,但当我滚动时,一些不同的行是粗体的。

您需要删除项目名称以
开头的行的样式。
。(注意,您还需要调用
super.updateItem(…)
):

或者,等效地(但代码较少):


现在JavaFX11.0.2似乎打破了这一点——有人能证实吗?
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");
                }
            }
        };
    }
});
@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");
    }

}