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.