首页 文章

带有数字的JavaFX空tableview

提问于
浏览
0

我有一个包含类型列的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 回答

  • 1

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

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

相关问题