带有数字的JavaFX空tableview

时间:2014-01-31 13:30:44

标签: javafx tableview

我有一个包含类型列的tableview(SimpleStringProperty,SimpleIntegerProperty)

STRING1   STRING2       INTEGER1          INTEGER2
#######   #######       ########          ########

a            b             9                 10
a            c             9                 12
b            d             0                  0

现在,在第3行中,第3和第4列的值为0.其类型为SimpleIntegerProperty。

如果表中没有显示0并且单元格显示为空,我想要它。 你能告诉我怎么做这个吗?

P.S:我正在使用属性侦听器来制作可编辑的表格。 字符串初始化为null,因此表为空,但整数初始化为0。

2 个答案:

答案 0 :(得分:1)

我认为您必须从ListCell扩展并覆盖updateItem方法。 在该方法中,您必须检查SimpleIntegerProperty是否等于0,然后可能调用setText(“”)。

答案 1 :(得分:0)

您必须提供一个TableCellFactory,它返回您自定义的TableCell-Object。在TableCell的updateItem()方法中,您可以按照Lukas Leitinger的建议调用setText()。

 TableColumn columnInteger2 = new TableColumn("Integer2");
        columnInteger2.setCellValueFactory(
                new PropertyValueFactory<MyVo,String>("fieldInteger2"));

        columnInteger2.setCellFactory(new Callback<TableColumn, TableCell>() {
            @Override
            public TableCell call(TableColumn tableColumn) {
                return new TableCell<String, Integer>(){
                    @Override
                    protected void updateItem(Integer integer, boolean b) {
                        if (integer != null) {
                            super.setText(integer == 0?"":integer.toString());
                        }
                    }
                };
            }
        });