Criando um JComboBox personalizado no Java Swing

Bom dia. Nesse tutorial vou mostrar como criar um combobox personalizado.

Esse combobox vai permitir adicionar o código e a descrição de um objeto facilitando o trabalho do desenvolvedor.

Nesse exemplo criei uma tela simples que contém um JComboBox e dois JTextField que vão se encarregar de mostrar as informações contidas ao selecionar um item no ComboBox. Veja a figura a seguir:




Primeiro vamos criar um classe modelo de item que se encarregará de receber as informações necessárias, no nosso exemplo será apenas o código e a descrição. O método setText do JTextField é String por esse motivo utilizei String em ambos porém você pode trabalhar com os demais tipos, fica a seu critério. Veja a figura a seguir a classe ModeloItem:



Agora que temos nosso modelo de item, vamos criar o modelo do combobox que se encarregará de criar uma lista de itens e retornar as informações. Veja na figura a seguir a classe ModeloJComboBox:




Com as classes modelo de item e combobox. Estamos prontos para colocar em prática nosso combobox personalizado. Agora vamos trabalhar no código do nosso JFrame para mostrar os itens com códigos e descrição.

Primeiro vamos implementar o evento ItemStateChanged do combobox que se encarregará de pegar o item atual e enviar as informações para os dois JTextField. Depois vamos criar os métodos getModeloComboBox e setModeloComboBox que são responsáveis por setar e retornar classe ModeloJComboBox ao combobox exemplo que temos no nosso JFrame. Criamos um método alimentar que vai adicionar os objetos ao combobox e para finalizar chamamos esse método no init do JFrame para alimentar o combobox assim que o JFrame for exibido. Veja a figura a seguir os métodos implementados:






Agora basta executar o projeto para ver o resultado do nosso trabalho.





Clique aqui para baixar o projeto  usado no artigo. Qualquer dúvida deixe o seu comentário. Até a próxima.
Compartilhe no Google Plus

About Tiago Sousa

Sou Desenvolvedor Web Full-Stack com ênfase na tecnologia Java. Estou no mercado de TI há 15 anos, possuo conhecimentos gerais em diversas tecnologias.