JavaFX:llä pystyy ListViewiin tekemään sisäisen ComboBoxin. Tässä esimerkissä arvoiksi on asettetu Fibonaccin lukujono.
package javafx_lista; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.scene.Scene; import javafx.scene.control.*; import javafx.scene.control.cell.ComboBoxListCell; import javafx.scene.layout.TilePane; import javafx.stage.Stage; public class JavaFX_Lista extends Application { @Override public void start(Stage primaryStage) { //Seuraavaan kahteen lisätään tiedot. ObservableList fib = FXCollections.observableArrayList(); ObservableList fib2 = FXCollections.observableArrayList(); ListView lista = new ListView(fib); lista.setEditable(true); //Muokkausmahdollisuus int a = 0; int b = 1; int summa = 0; //Lisätään tiedot. for (int x = 0; x < 10; x++){ summa = a+b; a = b; b = summa; fib.add(summa); fib2.add(summa); } lista.setItems(fib); //Luodaan listaan sisäinen ComboBox. lista.setCellFactory(ComboBoxListCell.forListView(fib2)); TilePane root = new TilePane(); root.getChildren().add(lista); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("Hello World!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.