为什么我的JavaFX Tableview不可编辑?

时间:2015-04-13 14:59:59

标签: java javafx javafx-8

为什么我的TableView不允许ID列可编辑? getPenaltyIdProperty()返回一个IntegerProperty(确切地说是一个SimpleIntegerProperty),但我认为这将允许编辑通过绑定自动发生。我错过了什么?

public class PenaltyDashboardManager { 

    private final TableView<Penalty> penaltyTable = new TableView<Penalty>();

/* ... */

    private void initializeTable() { 

        penaltyTable.setItems(Penalty.getPenaltyManager().getPenalties());
        penaltyTable.setEditable(true);

        TableColumn<Penalty,Number> penaltyId = new TableColumn<>("ID");
        penaltyId.setCellValueFactory(c -> c.getValue().getPenaltyIdProperty());
        penaltyId.setEditable(true);

        /* ... */

        penaltyTable.getColumns.add(penaltyId);
    }

}

1 个答案:

答案 0 :(得分:2)

您需要一个单元工厂来生成一个允许用户编辑该值的单元格。 E.g。

penaltyId.setCellFactory(TextFieldTableCell.forTableColumn(new NumberStringConverter());