为什么我的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);
    }

}

最佳答案

您需要一个单元格工厂来生成一个允许用户编辑值的单元格。例如。

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

关于java - 为什么我的JavaFX Tableview无法编辑?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29608577/

10-10 02:28