如何在JavaFX FXML中编辑完成后获得可编辑的Tableview Cell值

时间:2016-01-10 04:40:03

标签: javafx javafx-2 javafx-8 fxml

我有一个带有可编辑列selectedProductsTable的TableView quantityColumn。 我希望在用户编辑列后​​获取值。方法被调用没有问题,但我不知道如何获取值。

@FXML
private TableView selectedProductsTable;
@FXML
private TableColumn quantityColumn;
.......

@Override
public void initialize(URL url, ResourceBundle rb) {
   selectedProductDataList = FXCollections.observableArrayList();
   quantityColumn.setCellFactory(TextFieldTableCell.forTableColumn());
}

@FXML
public void onEditCommitSelectedProductTable( ){

    // this method fires when user press enter after finish editing "Quantity" column value.

    // how to get Edited value


}

我在方法中向表中添加值,在按钮单击中调用。 image of GUI

1 个答案:

答案 0 :(得分:2)

onEditCommit处理程序将CellEditEvent对象作为其参数,其中包含有关事件的信息,包括新值。所以你可以做到

@FXML
public void onEditCommitSelectedProductTable(CellEditEvent<?,?> event){
    Object newValue = event.getNewValue();
    // other data that might be helpful:
    TablePosition<?,?> position = event.getTablePosition();
    int row = position.getRow();
    // etc ...
}