簡體   English   中英

JavaFX-我不知道如何使TableView可編輯

[英]JavaFX - I don't understand how to make my TableView editable

我正在用Java(JavaFX)創建一個食物計算器,當用戶確認在TableView中進行編輯時,它應該能夠重新計算蛋白質,碳水化合物和脂肪(所有TableView表列)之類的食物元素。

我不知道如何使表格單元格可編輯。 我完全不了解文檔。

這就是我創建列的方式。 我讀過,我應該改變setCellValueFactorySetCellFactory ,但我不知道為什么還是應該作為參數傳遞給該函數傳遞什么。 那我將在哪里將食物字段分配到表?

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 FloatStringConvert‌​er));
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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM