Artigo anterior
Por padrão, uma ListView control implementa uma simples seleção então só um pode ser selecionado. ListView também fornece múltiplas seleções, o qual você pode habilitar configurando a selection mode.
listView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
Com essa configuração, cada vez que o usuário adicionar outro item com as teclas pressionadas CTRL-Shift ou CTRL-Command, a selectedItemProperty listener é invocada com uma nova seleção.
O método getSelectedItems() retorna todos os itens selecionados, e o argumento newValue é o valor recente atual. Por exemplo, o change listener coleta múltiplas seleções e as mostra:
listView.getSelectionModel().selectedItemProperty().addListener(personChangeLinstener = (observable, oldValue, newValue) -> {
ObservableList<Person> selectedItems = listView.getSelectionModel().getSelectedItems();
//faça alguma coisa com os itens selecionados
System.out.println(selectedItems);
}
No meu exemplo coloquei no método initialize.
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
Person p1 = new Person("Michel", "Medeiros", "Pessoa 1");
Person p2 = new Person("Angela", "Ferraz", "Pessoa 2");
Person p3 = new Person("Jean", "Medeiros", "Pessoa 3");
personList.add(p1);
personList.add(p2);
personList.add(p3);
obsPerson = FXCollections.observableArrayList(personList);
System.out.println(obsPerson.size());
listPersons.setItems(obsPerson);
listPersons.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
}

Fonte: The Definitive Guide to Modern Java Clients with JavaFX





Deixe um comentário