使用Java编辑表格单元格

时间:2017-01-02 07:03:48

标签: uitableview javafx

我有一个带有列的表。最初,该表是空白的。我需要在像Excel这样的单元格中输入值。我关注了问题javafx-table-cell-editing以及关于TableView的JAVA教程。

我的编码如下:

colCom1.setCellValueFactory(new PropertyValueFactory<>("C1"));
colCom1.setCellFactory(TextFieldTableCell.forTableColumn ());
colCom1.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<commonDataClass, String>>() {
        @Override
        public void handle(TableColumn.CellEditEvent<commonDataClass, String> t) {
            ((commonDataClass) t.getTableView().getItems().get(
                    t.getTablePosition().getRow())).setD1(t.getNewValue().toString());           
                tC1.setItems(myC1);
                System.out.println("Col1->" + colCom1.isVisible());
                tC1.refresh();
                tC1.setVisible(true);
            }
        }
    });

我面临的问题是,在编辑并按“ENTER”后,单元格中没有任何内容(单元格保持空白),而数据打印显示该值已正确输入。

1 个答案:

答案 0 :(得分:-1)

我将setCellValueFactory修改为

colCom1.setCellValueFactory (
            new Callback<CellDataFeatures<commonDataClass, String>, ObservableValue<String>> () {
        public ObservableValue<String> call(
                CellDataFeatures<commonDataClass, String> p) {
            // p.getValue() returns the Person instance for a particular TableView row
            return p.getValue ().d1NameProperty ();
        }
    }); 

这清楚地显示了内容。