ComboBox in einer Tabellenzelle in JavaFX

Ich versuche ein @ hinzuzufügCombo Box zu meinemTable View:

rundsätzlich habe ich eine Klasse namens TableViewTest, die einen Namen und eine Beschreibung speichert. Ich kann diese Namen und Beschreibungen in einem @ anzeigeTable View keine Mühe, aber ich möchte eine dritte Spalte mit jeder Zelle mit einem @ hinzufügCombo Box, sodass der Benutzer für jede Person eine Option aus einer Reihe von Optionen auswählen kann.

isher habe ich ein @ erstelObservableList vom TypString mit einigen Werten und fügte sie einem @ hinComboBox Objekt. Kennt jemand eine Möglichkeit für mich, dieses @ hinzuzufügeCombo Box zum Tisch

Denken Sie auch daran, dass dieser Code ziemlich rau ist und ich nur versuche, etwas zum Laufen zu bringen. Ich werde den Code zu einem späteren Zeitpunkt überarbeiten.

ObservableList<TableViewTest> products = FXCollections.observableArrayList();

    for(int i = 0; i < b.length; i++){

        // random String values
        products.add(new TableViewTest(b[i], a[i]));
    }

ObservableList<String> options = FXCollections.observableArrayList(
                                "1",
                                "2",
                                "3"
                                );
final ComboBox comboBox = new ComboBox(options);

TableColumn<TableViewTest, String> nameColumn = new TableColumn<> ("Name");
nameColumn.setMinWidth(200);
nameColumn.setCellValueFactory(new PropertyValueFactory<TableViewTest, String>("name"));

                //price Column
                //Stock Column
TableColumn<TableViewTest, String> StockColumn = new TableColumn<> ("Stock");
StockColumn.setMinWidth(150);
StockColumn.setCellValueFactory(new PropertyValueFactory<TableViewTest, String>("description"));


TableColumn<Object,ComboBox> PriceColumn;
PriceColumn = new TableColumn<>("Source");
PriceColumn.setMinWidth(150);
   //PriceColumn.setCellValueFactory(new PropertyValueFactory<>
   //(options));

   //PriceColumn.setCellFactory(ComboBoxTableCell.forTableColumn(new 
   //DefaultStringConverter(), options));


   //PriceColumn.setCellFactory(ComboBoxTableCell.forTableColumn( 
   //comboBox));

TableView<TableViewTest> table = new TableView<>();

table.setItems(products);
table.getColumns().addAll(nameColumn, StockColumn, PriceColumn);

Antworten auf die Frage(4)

Ihre Antwort auf die Frage