Duvida jcombobox

2 respostas
marceloamigo

Boa Tarde Pessoal

Tenho um banco simples, com 2 tabelas, produtos e departamentos

PRODUTOS DEPARTAMENTOS
codigo codigo
xxx descricao
cod_departamento xxx

no meu formulario de cadastro de produtos, tenho um combobox com os dados do campo descricao da tabela departamentos, porém, quando vou salvar os dados desse formulário no banco, quero salvar o código.

em visual basic, em colocava no combo o codigo + “-” + Descricao, e na hora de salvar pegava o que estava antes do “-” . sei que isso funcionaria aqui também, porém gostaria de saber se alguem conhece algum método diferente.

2 Respostas

T

O que se faz em combos é o seguinte:
a) Cria-se uma classe bem simples, contendo os dados que você quer associar a cada item do combo. A dica é escrever direitinho o método toString, porque ele será usado para visualizar os dados do combo.

class ProdutoItemCombo {
    String codigo;
    String descricao;
    int codigoInterno; // por exemplo, isto não apareceria no combo
    public ProdutoItemCombo (String c, String d, int i) { codigo = c; descricao = d; codigoInterno = i; }
    public String toString() { return codigo + " - " + descricao; }
};

b) A seguir, em vez de adicionar uma string com código e descrição ao combo, adicione um objeto ProdutoItemCombo (devidamente preenchido) para cada item de seu combo.
Quando você for obter um dado do combo (por exemplo, o item selecionado), você faz um cast para ProdutoItemCombo e vai obter facilmente o código, a descrição, o código interno etc. sem precisar fazer essa gambiarra de pôr todos os dados que você precisa no combo e ter de separar os “-”.

marceloamigo
obrigado pela ajuda ficou assim
public class ItemCombo {
    int codigo;
    String descricao;

    public ItemCombo(String desc, int cod) {
        this.codigo = cod;
        this.descricao = desc;
    }

    public int getCodigo(){
        return codigo;
    }

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

e

ItemCombo teste = (ItemCombo) cboDepartamentos.getSelectedItem();
            pstmt.setInt(9, teste.getCodigo());

agora estou em outra situação, estou preenchendo os campos do formulario, e nesse preenchimento quero deixar selecionado no combo o departamento correspondente ao registro do produto.
alguma dica??

Criado 26 de fevereiro de 2009
Ultima resposta 27 de fev. de 2009
Respostas 2
Participantes 2