Artigos anteriores
- Implementando a Seleção ListView
- Utilizando Múltiplas Seleções
- ListView e Ordenação
- Remover Pessoa da Lista
O botão adicionar acrescenta uma pessoa a lista que atualiza a ListView. Um novo item é sempre ordenado porque os elementos se reordenam quando um novo item é adicionado.
<Button fx:id=”createButton” mnemonicParsing=”false”
onAction=”#createButtonAction” text=”Novo” />
Quando devo desabilitar o botão Novo?
- Quando clicar no novo, nenhum item da ListView deve estar selecionado. Podemos desabilitar o botão com a propriedade selectedItemProperty é not null.
- Não devemos criar uma pessoa se os campos nome ou sobrenome estiverem vazio desabilitamos o botão Novo se algum desses campos estiverem vazios.

A programação do botão Novo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public void createButtonAction(ActionEvent actionEvent) { String personName = firstnameTextField.getText(); String personSurname = lastnameTextField.getText(); String personNote = notesTextArea.getText(); if(personName.isBlank() || personSurname.isBlank()){ System.out.println("O nome e sobrenome não pode ficar em branco."); createButton.disableProperty().bind( listPersons.getSelectionModel().selectedItemProperty().isNotNull() .or(firstnameTextField.textProperty().isEmpty() .or(lastnameTextField.textProperty().isEmpty()) )); }else{ System.out.println("Adicionar Pessoa "); Person person = new Person(personName,personSurname, personNote); obsPerson.add(person); listPersons.getSelectionModel().select(person); } } |

Um problema que não consegui resolver é quando o botão Novo torna-se desabilitado voltar habilitá-lo.

Fonte: The Definitive Guide to Modern Java Clients with JavaFX
Deixe um comentário