Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Preenchendo um JComboBox

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Java Desktop Preenchendo um JComboBox

    Nesse post iremos preencher um JComboBox com objetos, para isso vamos precisar de uma java.util.List.
    Para exemplo vamos usar uma categoria. Então... precisamos de uma classe chamada Categoria.java

    Código:
    public class Categoria {
     
        private int codigo;
        private String nome;
     
        public int getCodigo() {
            return codigo;
        }
     
        public void setCodigo(int codigo) {
            this.codigo = codigo;
        }
     
        public String getNome() {
            return nome;
        }
     
        public void setNome(String nome) {
            this.nome = nome;
        }
     
        @Override
        public String toString() {
            return this.nome;
        }
     
    }
    Perceba que o método toString() foi sobreescrito, isso é necessário para que ao mostrar os objetos no JComboBox, apareça o nome da categoria como referência no combo... para entender a importância disso, faça um teste: retire o método toString() e veja o resultado!

    Continuando...
    Crie um Formulário JFrame com o nome de ExemploCombo.java, e arraste para a tela, um JComboBox (cmbCategoria) e um JButton (btnEnviar) para testarmos.
    A janela deverá ficar como a imagem abaixo:


    No código-fonte crie um método carregaCombo(), com o seguinte código:
    Código:
    private void carregaCombo(){
            //assim como é feito numa JTable, temos o DefaultComboBoxModel que é o model do JComboBox
            DefaultComboBoxModel comboModel = (DefaultComboBoxModel) cmbCategoria.getModel();
            //removendo todos os elementos do combo
            comboModel.removeAllElements();
            //cria a lista: java.util.List
            List<Categoria> categorias = new ArrayList<Categoria>();
            //adicionando valores aleatorios a lista
            Categoria c1 = new Categoria();
            c1.setCodigo(1);
            c1.setNome("Compra");
            categorias.add(c1);
     
            Categoria c2 = new Categoria();
            c2.setCodigo(2);
            c2.setNome("Venda");
            categorias.add(c2);
            //percorrendo a lista para inserir os valores no combo
            for (int linha = 0; linha < categorias.size(); linha++)
            {
                //pegando a categoria da lista
                Categoria categoria = categorias.get(linha);
                //adicionando a categoria no combo
                comboModel.addElement(categoria);
            }
        }
    Os comentários no código explicam o que acontece em cada linha.
    Agora é necessário chamar este método no construtor da classe, logo depois de iniciar os componentes:
    Código:
    public ExemploCombo() {
            initComponents();
            carregaCombo();
        }
    E para pegar o valor, vamos utilizar o evento do btnEnviar, para isso dê dois cliques no botão para abrir o evento:
    Código:
    private void btnEnviarActionPerformed(java.awt.event.ActionEvent evt) {                                         
            //pegando o objeto selecionado no combo
            Categoria categoria = (Categoria) cmbCategoria.getSelectedItem();
            //mostrando o nome da categoria em um dialogo
            JOptionPane.showMessageDialog(this, categoria.getNome());
        }
    Para setar um objeto por padrão em um combo, segue o exemplo:
    Código:
    cmbCategoria.setSelectedItem(categoria);
    Essa categoria que está sendo passada por parâmetro, seria uma categoria por exemplo pega de uma lista, ou de um outro objeto que possua uma categoria.

    =)
    ~# Criado pela [IN]Segurança #~
X
Working...
X