Desidero selezionare più elementi da ListView. Reagirebbe al clic del mouse. Ho provato con questo:JavaFX ListView Selezione multipla
selectedLogsList.addAll(logsListView.getSelectionModel().getSelectedItems());
ma mi stava dando i duplicati. Così ho provato questo:
logsListView.getSelectionModel().selectedItemProperty().addListener(
new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> ov,
String old_val, String new_val) {
if(selectedLogsList.contains(new_val)) {
selectedLogsList.remove(new_val);
} else {
selectedLogsList.add(new_val);
}
}
});
vorrei anche così, se viene selezionata cella, deve essere contrassegnato come tale (colore di sfondo) Grazie!
che cosa esattamente vuoi ottenere? vuoi sapere tutti gli oggetti selezionati? Puoi rendere ListView selezionabile tramite: listView.getSelectionModel(). SetSelectionMode (SelectionMode.MULTIPLE); – blaster
Semplice: D Ha funzionato sulla selezione multipla con CTRL. Ma fa ancora duplicati. Se faccio clic più volte sulla stessa cella, lo aggiunge ogni volta. Invece, voglio rimuoverlo la seconda volta che clicco. – Bade
Se copi il codice dalla mia risposta qui sotto, fa esattamente quello che vuoi. Se premi CTRL puoi aggiungere diversi oggetti e nel metodo setOnMouseClicked() otterrai tutti gli elementi selezionati. Se deselezioni un oggetto (premendo ancora CTRL) chiamerà nuovamente il metodo setOnMouseClicked() - ma questa volta l'oggetto non sarà nella lista. – blaster