Comment mettre ComboBoxTableCell dans un TableView?

Je suis en train de mettre une zone de liste déroulante dans une cellule de tableau, mais je ne peux pas. le code est le suivant:

private void cargaTablaDesglose() {
    TableColumn<Map, String> column1 = new TableColumn<>(Desglose1);
    TableColumn<Map, String> column2 = new TableColumn<>(Desglose2);
    TableColumn<Map, String> column3 = new TableColumn<>(Desglose3);

    column1.setCellValueFactory(new MapValueFactory(Desglose1));
    column1.setMaxWidth(0);
    column2.setCellValueFactory(new ComboBoxTableCell.forTableColumn(null));
    column2.setPrefWidth(150);
    column3.setCellValueFactory(new MapValueFactory(Desglose3));
    column3.setPrefWidth(250);

    if (CUOD.modifyData()) {
        column2.setOnEditCommit((TableColumn.CellEditEvent<Map, String> t) -> {
            actualizaObra(t.getRowValue(), t.getNewValue());
        });
            }

    tablaDesglose.getItems().clear();
    tablaDesglose.setEditable(true);
    tablaDesglose.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
    tablaDesglose.getSelectionModel().setCellSelectionEnabled(false);
    tablaDesglose.getColumns().clear();
    tablaDesglose.getColumns().addAll(column1, column2, column3);

    Callback<TableColumn<Map, String>, TableCell<Map, String>> cellFactoryMap
            = CUCF.getFactoryMap();
    column1.setCellFactory(cellFactoryMap);
    column2.setCellFactory(cellFactoryMap);
    column3.setCellFactory(cellFactoryMap);
}

Il dit qui ne peuvent pas trouvé forTableColumn méthode de ComboBoxTableCell

forTableColumn méthode est statique. Vous devez l'appeler ComboBoxTableCell.forTableColumn(null) et de passer des arguments valables à l'intérieur de celui-ci (comme la chaîne de convertisseur et de collection, pour créer de zone de liste déroulante).
J'ai créé un ObservableList, un Tableau, une Liste, et cela ne fonctionne pas.
Essayez d'insérer cet exemple simple dans votre code et vérifier qu'il fonctionne: column2.setCellFactory(ComboBoxTableCell.forTableColumn(new DefaultStringConverter(), FXCollections.observableArrayList("1", "2", "3")));

OriginalL'auteur user3292323 | 2014-05-08