首页 文章

Javafx获取在tableview中更改的单元格的新值

提问于
浏览
-1

我使用http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/table-view.htm#CJAGAAEE在我的javafx表中创建了一个可编辑的单元格,但无论我尝试什么,我都无法获得新值 . 相反,我总是使用第一列中的值

firstNameCol.setOnEditCommit(
(CellEditEvent <Person,String> t) - > {
((Person)t.getTableView() . getItems() . get(
t.getTablePosition() . 的getRow())
).setFirstName(t.getNewValue());
});

(上面链接中的代码示例)

我的代码很大,它是我的项目,但到目前为止我的代码大致是我的代码 .

timeColumn.setCellFactory(TextFieldTableCell.forTableColumn());
  timeColumn.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent>() {
     @Override
     public void handle(TableColumn.CellEditEvent event) {
        tableView.getItems().get(event.getTablePosition().getRow());
     }
  });

我正在编辑第1行第2列中的单元格,但由于某种原因,它始终返回第1行第1列中的对象而不是第1行第2列中的新值 .

有什么建议?

我试过了 tableView.getItems().get(event.getTablePosition().getRow()) + 1;

但这没效果

1 回答

  • 0

    这应该可以帮助您找到正确的人 .

    TableView tempTable = (TableView)event.getTableView();
    Person tempPerson = (Person)tempTable.getItems().get(event.getTablePosition().getRow());
    tempPerson.setYourMethod(event.getNewValue());//maybe toString?
    

    如果object不是Person对象,则将Person替换为您的对象类型 .

相关问题