我有一个带有列的表。最初,该表是空白的。我需要在像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”后,单元格中没有任何内容(单元格保持空白),而数据打印显示该值已正确输入。
答案 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 ();
}
});
这清楚地显示了内容。