Pegar o "id" em um combobox

3 respostas
uchiharussi

Ola, bom dia a todos.

Tenho a seguinte situacao:
Em uma soh Jframe, estou fazendo cadastro, exclusao e edicao. Estou cadastrando cameras. Para cadastro nao tenho problemas, mas para exclusao e edicao, preciso do “id” da camera, que eh a unica chave primaria, mas, sempre que a tela abre, tem um metodo que coloca em um combobox os nomes das cameras que nao sao chaves primarias e que poderao ter os mesmos nomes em alguma situacao. Entao para fazer a exclusao eu precisava do “id” e nao do nome, mas nao sei como buscar o id, porque no combobox vai soh o nome, alguem sabe um jeito de pegar esse id. Lembrando que o metodo que cria o combobox nao eh o mesmo que preciso pegar o id da camera selecionada.

Se alguem poder me ajudar, agradeco.
Abracos

3 Respostas

Marky.Vasconcelos

Voce pode criar um ComboModel que mostre a informação que voce quer no ComboBox e ainda guarde o id para voce usar depois.

No projeto mark-utils que fiz tem um Model que faz isso também, mas ele não está tão completo e ainda não documentei.

Mas se quiser fazer um pense em guardar uma List, mostrar apenas a informação que voce quer mas ter acesso aos objetos para recuperar depois.

uchiharussi

Mark_Ameba

Blzz, funciona, valeeu

Diabo_Loiro

voce pode carregar o combo box com um obj e implementar toString para mostrar… ao mesmo tempo voce usa um mapa para maperar a ordem que estao inseridos no combo.

mapa para controlar o codigo

HashMap<String, Integer> mapa = new HashMap<String, Integer>();

metodo que carrega o combo

public void carregaCbox() {
        jc1.removeAllItems();
        ArrayList<Estado> lista = new EstadoDao().getEstados();
        int cont = 0;
        for (Estado e : lista) {
            //tostring do estado
            jc1.addItem(e);
            mapa.put(e.getNome(), cont);
            cont++;
        }
    }

obtendo o estado escolhido

int estado=(Estado) jc1.getSelectedItem()).getCdEstado()
Criado 26 de fevereiro de 2010
Ultima resposta 26 de fev. de 2010
Respostas 3
Participantes 3