如何在TableView中忽略负值和零值?

时间:2016-11-01 12:34:12

标签: java javafx

我有以下代码:

costCol_.setCellValueFactory(cellData -> new SimpleIntegerProperty(cellData.getValue().getCost()));
table_.getItems().addAll(SomeEnumType.values());



@FXML
private TableView<SomeEnumType> table_;
@FXML
private TableColumn<7, Number> costCol_;

costCol中的某些值可以是0 / -1,当前(来自SomeEnumType.getCost()),它们显示为0或-1。 我不想将它们显示为0而不是空单元格。可能吗? 我检查了SimpleIntegerBase,根据我的理解,返回的值来自返回get()的{​​{1}}方法。

在没有将类型转换为int的情况下,是否可以执行此操作?

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用单元工厂(除现有单元格值工厂之外)更改值的显示方式:

costCol.setCellFactory(tc -> new TableCell<SomeEnumType, Number>() {
    @Override
    protected void updateItem(Number item, boolean empty) {
        super.updateItem(item, empty) ;
        if (empty) {
            setText(null);
        } else {
            int value = item.intValue();
            if (value <= 0) {
                setText("");
            } else {
                setText(Integer.toString(value));
            }
        }
    }
});