JComboBox com auto complete e Map de Objetos

Postado por ugleiton dia 21 de dezembro de 2010 as 05:27

O objetivo da implementação desse combo foi facilitar o desenvolvimento de aplicações que utilizam persistência, onde os combos criados nas aplicações representam entidades de um banco de dados, o mesmo funciona também como os combobox convencionais pois extendes da classe JCombobox.

Para a utilização do mesmo faça o download do jar UGComp.jar e importe o mesmo para a paleta do netbeans, caso ainda não saiba como fazer isso siga o tutorial Adicionando Componentes a Paleta do NetBeans. Depois adicione a o jar UGLibrary.jar a biblioteca do seu projeto.

Os combos convencionais só guardam as descrições de um objeto, como por exemplo, um combo preenchido com nomes de pessoas não guarda todas as informações dessa pessoa e a aplicação necessita de todos os dados para processamento ou preenchimento de tela.
O componente UJComboBox adiciona a descrição e o próprio objeto da descrição, funcionando em paralelo com um hashMap.
Veja como utilizar:

Preenchendo
private void carregarCombo(){
        //limpa o combo
        uJComboBox1.clear();
        Pessoa p = new Pessoa();
        p.setNome("Fulado de Tal");
        p.setCpf("02523646257");
        /**
         * observe que aqui é setado o nome da pessoa como descrição
         * e o próprio objeto pessoa para se buscado depois
         */
        uJComboBox1.addItem(p.getNome(), p);

        p = new Pessoa();
        p.setNome("outra pessoa");
        p.setCpf("00000000000");
        uJComboBox1.addItem(p.getNome(), p);
    }

Pegando Objeto
/**
     * @return pessoa com nome selecionado
     */
    private Pessoa getCombo(){
        /**
         * para retornar o objeto utilise o método getSelectedObject
         * para retornar o nome utilize o método getSelectedItem
         */
        return (Pessoa) uJComboBox1.getSelectedObject();
    }

Além de guardar as informações de forma mais precisa, ele também possui uma propriedade auto complete, que foi implementada utilizando classes da biblioteca swingx.
Veja como utiliza-la:
Depois de ter selecionado o componente na sua aplicação, marque a propriedade auto completar.


Enquanto o usuário digita o combo vai completando e selecionando a palavra.



15 comentários

Marcadores

Computação (8) Java (7) Excel (2) Humor (2) NetBeans (2) Textos (2) Curiosidades (1) IRPF (1) Musicas (1)