A ListView
A classe javafx.scene.control.ListView permite mostrar listas de algum objeto e também que seja selecionado um dos items. A ListView é um Node. Ou seja, você pode adicionar ela em qualquer um dos painéis que já falamos aqui e assim mostrar a lista na sua aplicação. Veja abaixo um exemplo de ListView:
Como as tabelas, temos um método getItems que permite você acessar os itens e adicionar novos. A lista pode ser vertical, como acima, ou horizontal usando o método lista.setOrientation(Orientation.HORIZONTAL). Um exemplo:
Customizando ListView
Cada item é adicionado em uma ListCell<TIPO>, que você pode customizar. Uma forma simples de customizar é criando sua própria ListCell (uma classe que estende de ListCell) e sobreescrever o método updateItem. Ao sobreescrever o método, não se esqueça de chamar super.updateItem e seja feliz mexendo nas configurações da célula. Importante dizer que a célula pode ter o texto mudado e também o graphics, ou seja, você pode configurar uma imagem e o texto de acordo com o objeto que você colocou no TIPO.
O TIPO é o seguinte: Uma ListCell é parametrizada, ou seja, você informa o tipo de objeto que ela aceita. Assim você vai ter erros se tentar inserir outros tipos. Ou seja, se a sua lista é do tipo String, você tem erros ao inserir Integer nessa lista. O mesmo vale para a ListCell, você cria uma ListCell para o TIPO que escolher. Por fim, o tipo vale também para tipos customizados da sua aplicação.
Agora que você criou sua célula, como você informa que quer usar ela na sua lista? Bem, a resposta é simplesmente informar uma fábrica de células usando o método setCellFactory. Não se apavore, com Java 8 você simplesmente usa o seguinte: lista.setCellFactory(param -> new MinhaListCell())
Um exemplo com imagem
O código abaixo esclarece tudo que mencionei:
Conclusão
Falamos brevemente de ListCell. Na verdade o objetivo dessa postagem é preparar terreno para a próxima que fala da aplicação que mostramos nos screenshots - até lá!
Tenho uma tela de cadastro de usuários onde vou dar permissão para o mesmo. Nesse formulário vou ter duas combobox. Uma para as telas do projeto outra para mostrar o nome dos botões que contém cada tela. Exemplo:
ResponderExcluirTela de Clientes: Botão Novo, Botão Salvar, Botão Alterar, Botão Pesquisar e Botão Excluir
Tela de Produtos: Botão Novo, Botão Salvar, Botão Alterar, Botão Pesquisar, Botão Excluir e Botão Cadastrar Fornecedor
Tela de Fornecedores: Botão Novo, Botão Salvar, Botão Alterar, Botão Pesquisar e Botão Excluir
Como fazer isso ai no JavaFX?