[英]JavaFX - I don't understand how to make my TableView editable
我正在用Java(JavaFX)創建一個食物計算器,當用戶確認在TableView中進行編輯時,它應該能夠重新計算蛋白質,碳水化合物和脂肪(所有TableView表列)之類的食物元素。
我不知道如何使表格單元格可編輯。 我完全不了解文檔。
這就是我創建列的方式。 我讀過,我應該改變setCellValueFactory
到SetCellFactory
,但我不知道為什么還是應該作為參數傳遞給該函數傳遞什么。 那我將在哪里將食物字段分配到表?
TableColumn<Food, Float> tableFoodFat = new TableColumn<>("Fat");
tableFoodFat.setCellValueFactory(new PropertyValueFactory<>("fat"));
tableFoodFat.setMinWidth(100);
我真的很困惑。 這里有人可以用簡單的答案幫助我嗎? 我可以自己編寫代碼,我只需要了解什么以及為什么應該更改它。
編輯:這適用於包含字符串數據的列tableFoodTitle.setCellFactory(TextFieldTableCell.<Food>forTableColumn());
但是當我嘗試在具有Float數據的列上使用此概念時,會引發錯誤。
嘗試這個!! 它使您可以編輯表格單元格!
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
希望能對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.