我正在创建一个Java计算器(JavaFX),当用户在TableView中确认编辑时,它应该能够重新计算像Protein,Carbohydrates和Fat(所有TableView表列)这样的食物元素。
我不知道如何让我的表格单元格可编辑。我根本不理解文档。
这就是我创建列的方式。我已经读过我应该将setCellValueFactory
更改为SetCellFactory
,但我不知道为什么或应该将哪些内容作为参数传递给该函数。那么我在哪里将食品领域分配到表中呢?
TableColumn<Food, Float> tableFoodFat = new TableColumn<>("Fat");
tableFoodFat.setCellValueFactory(new PropertyValueFactory<>("fat"));
tableFoodFat.setMinWidth(100);
我真的很困惑。这里的任何人都可以用简单的语言帮我解决问题吗?我可以自己编写代码,我只需要了解我应该改变它的原因和原因。
编辑:这适用于包含字符串数据的列 - tableFoodTitle.setCellFactory(TextFieldTableCell.<Food>forTableColumn());
但是当我尝试在具有Float数据的列上使用此概念时会抛出错误。
答案 0 :(得分:0)
试试这个!!它让你的表格单元格可编辑!
tableFoodFat.setCellFactory(TextFieldTableCell.forTableColumn(new FloatStringConverter));
tableFoodFat.setOnEditCommit(new EventHandler<CellEditEvent<Food, Float>>() {
@Override
public void handle(CellEditEvent<Food, Float> t) {
((Food) t.getTableView().getItems().get(t.getTablePosition().getRow())).setFOODFAT(t.getNewValue());
}
});
只需在这里注意setFOODFAT
希望它可以提供帮助!