java - 如何忽略TableView中的负值和零值?

标签 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,据我了解,返回的值来自返回 intget() 方法。

是否可以在不将类型转换为 String 的情况下执行此操作?

提前致谢。

最佳答案

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

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));
            }
        }
    }
});

关于java - 如何忽略TableView中的负值和零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40360179/

相关文章:

java - TreeView - 如何计算所有 child (包括折叠)

java - Javafx 中 GridPane 内的 HBox

css - 右对齐 JavaFX 中的顶部选项卡

css - Javafx 如何不将 css 样式应用于标签

java - 无法加载 jdbc 驱动程序 (ClassNotFoundException)

java - RabbitMQ - 线程 "main"java.lang.NoClassDefFoundError : org/slf4j/LoggerFactory 中出现异常

java - JXLS 的 XLSReader 是否会关闭工作簿?

java - 如何使用 Java 读取 .csv 文件并将其数据插入 SQL Server?

java - 从未签名的 Javascript 调用时,如何让已签名的 Java Applet 执行特权操作?

javafx - 尝试运行 javaFX 应用程序时缺少 javax.inject