Non è possibile farlo solo nel file FXML.
Definire il listView corrispondente (assumendo fx:id="myListView"
in FXML) in classe Controller del file FXML:
@FXML
private ListView<MyDataModel> myListView;
Aggiungi ascoltatore in init/metodo che ascolterà Visualizzazione Elenco voce cambia inizio:
myListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<MyDataModel>() {
@Override
public void changed(ObservableValue<? extends MyDataModel> observable, MyDataModel oldValue, MyDataModel newValue) {
// Your action here
System.out.println("Selected item: " + newValue);
}
});
MyDataModel
può essere il proprio modello di struttura dati classe o semplicemente un String
.
Ad String esempio,
@FXML
private ListView<String> myListView;
...
...
ObservableList<String> data = FXCollections.observableArrayList("chocolate", "blue");
myListView.setItems(data);
myListView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, String oldValue, String newValue) {
// Your action here
System.out.println("Selected item: " + newValue);
}
});
fonte
2012-09-17 12:40:59
ringraziarvi per la risposta rapida. Ma ho problemi con MyDataModel. Ho provato come una stringa .. come String a = "test"; e ObservableList data = FXCollections.observableArrayList ( "cioccolato", "blu"); Entrambi non hanno funzionato per me .. chiede una lezione .. Puoi darmi un esempio, per favore? –