Ajuda com ENUM e JComboBox

4 respostas
marceloau

Olá pessoal sou novo aqui no forum e estou com um probleminha no sistema que estou desenvolvendo.
Estou querendo listar o meu enum no JComboBox com apenas a descrição, pois cada um dele tem descrição codigo e o nome do enum. Nesse caso so estou conseguindo listar o codigo de cada um deles, mas na verdade eu quero mostrar la no JComboBox a descrição de cada um deles.

Logo Abaixo segue o codigo do meu enum de Estado Civil.

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package Modelo;

/**
*

  • @author Marcelo Aurino
    */
    public enum EstadoCivil {

    SOLTEIRO(1, “Solteiro(a)”),
    
    CASADO(2, “Casado(a)”),
    
    DIVORCIADO(3, “Divorciado(a)”),
    
    OUTRO(4, “Outros”);
    
    private int codigo;
    
    private String descricao;
    
    private EstadoCivil(int codigo, String descricao) {
    
    this.codigo = codigo;
    
    this.descricao = descricao;
    
    }
    
    public String getDescricao() {
    
    return descricao;
    
    }
    
    public int getCodigo() {
    
    return codigo;
    
    }
    
    public void setCodigo(int codigo) {
    
    this.codigo = codigo;
    
    }
    
    <a class="mention" href="/u/override">@Override</a>
    
    public String toString()
    
    {
    
    return String.valueOf(codigo);
    
    }
    
    }
    

aqui está o vetor para que o meu JComboBox seja alimentado com os valores do enum.

private Vector getEstadosCivis() {

Vector<EstadoCivil> v = new Vector();
    
    for (EstadoCivil e : EstadoCivil.values()) {           
        v.add(e);
      
    }
    return v;

}

Só que ele está postando apenas o codigo de cada enum. Mas na verdade eu quero que ele mostre a descrição.

Aqui via a segunda parte, do meu problema que é pegar a seleção desse Jcombobox e automaticamente ver qual é o codigo dela e mostrar o codigo referente a aquela descrição na tela.

Aguardo respostas e desde já agradeço pela atenção e ajuda pessoal

Obrigado

4 Respostas

G

Bom dia, fera..
Cara, o enum também tem o método toString.

Então façamos assim:
public enum EstadoCivil {

Solteiro(0) {
 public String toString() {
  return "Solteiro";
 }
},
Casado(1) {
 public String toString() {
   return "Casado";
} 
}

.... e por aí vai :D

B
@Override
public String toString()
{
return descricao;
}
}
marceloau

Eu ja fiz isso, mas nesse caso eu quero pegar o valor que é passado la no enum e nao que ta no jcombobox, pq se for pelo combobox, eu posso fazer o seguinte, nomedocombobox.getselecteditem().toString(); e assim ele retorna o valor no formato string do jcombobox, eu fiz assim agora, e resolvi o meu problema e na minha classe criei uma string para receber esse valor e setar no banco, ja ta tudo certo aqui. Muito obrigado pela ajuda também.

ViniGodoy

A ComboBox trabalha com objetos, e não com Strings.

Então, use isso. Ao invés de fazer:

Faça:

E aí você passa a ter todas as propriedades do Estado Civil.

Criado 4 de fevereiro de 2013
Ultima resposta 5 de fev. de 2013
Respostas 4
Participantes 4