Artigo anterior
Suponhamos que você quer ordenar a lista de nomes ou sobrenomes, JavaFX tem várias maneiras de fazer isso com o sort. Desde que precisemos ordenar nomes, nós empacotaremos o ObservableArrayList dentro de um SortedList.
Para manter a lista ordenada no ListView, nós invocamos o método ListView setItems() com a lista ordenada. Um comparador específica a ordenação.
Primeiro, comparamos cada sobrenome para ordenar e depois os primeiros nomes se necessário. Para configurar a ordenação, o método setComparator() utiliza uma classe anônima ou algo mais curto, uma expressão lambda:
//Utiliza uma lista ordenada; por sobrenome e depois pelo nome
SortedList<Person> listaOrdenada = new SortedList(listaPessoa);
listaOrdenada.setComparator((p1 ,p2) -> {
int resultado = p1.getLastname().compareToIgnoreCase(p2.getLastname());
if(resultado == 0){
resultado = p1.getFirstName().compareToIgnoreCase(p2.getFirstname());
}
return result;
});
Nota: p1 e p2 são objetos da classe Person.
Para o meu projeto achei mais fácil utilizar o método sorted() que já faz a ordenação sem precisar criar um método para isso.
Fonte: The Definitive Guide to Modern Java Clients with JavaFX
Deixe um comentário