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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@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.<em>observableArrayList</em>(personList); System.<em>out</em>.println(obsPerson.size()); listPersons.setItems(obsPerson); listPersons.getSelectionModel().setSelectionMode(SelectionMode.<em>MULTIPLE</em>); } |
Fonte: The Definitive Guide to Modern Java Clients with JavaFX
Deixe um comentário