Erro ao listar combobox!

2 respostas
JorjaoCorreia

O que estou fazendo de errado? Estou tentando pegar as informações da tabela estado e jogar em um combo na tabela cidade, para serem selecionados os
estados que ja estao cadastrados..

este é meu metodo para incluir uma cidade no banco:

public static void incluirCidade(Cidade c) throws ErroException {
        ConexaoMySQL con = new ConexaoMySQL();
        String sql = "INSERT INTO CIDADE (CODESTADO, NOME) VALUES (?,?)";
        con.prepararPst(sql);
        con.setParam(1, c.getCodEstado().getCodEstado()); //O primeiro codEstado é da tabela cidade, o segundo é da tabela estado
        con.setParam(2, c.getNome());
        con.executarPst(con.ACAO_FECHAR);
    }

no meu form de cidade, criei 1 metodo para atualizar o combo quando um dado for inserido:

public void atualizarComboEstado() {
        cbEstado.removeAllItems();
        try {
            listarComboEstado = EstadoDAO.listarComboEstado();
        } catch (ErroException ex) {
        }
        cbEstado.setModel(new DefaultComboBoxModel(listarComboEstado));
    }
[code]

no EstadoDAO criei outro metodo para listar os dados do estado no combo:

[code]
public static Vector listarComboEstado() throws ErroException {
        ConexaoMySQL con = new ConexaoMySQL();
        String sql = "SELECT NOME FROM ESTADO ORDER BY NOME ASC";
        con.prepararPst(sql);
        Vector dados = con.selecionar();

        Vector resposta = new Vector();
        for (int i = 0; i < dados.size(); i++) {
            Vector lin = (Vector) dados.get(i);
            String linha = "";
            linha = (String.valueOf(lin.get(0)) + " - " + String.valueOf(lin.get(1)));
            resposta.add(linha);
        }
        return resposta;
    }

Este é meu outro metodo no form da cidade para inserir os dados usando o metodo incluirCidade criado no CidadeDAO:

@Override
    public void gravarDados() {
        try {
            Cidade cid = new Cidade();
            cid.setNome(fieldNome.getText());
            String estadoOriginal = (String) cbEstado.getSelectedItem();
            int separador = estadoOriginal.indexOf(" - ");
            cid.setCodEstado(EstadoDAO.listarComboEstado(estadoOriginal.substring(0, separador),
                    estadoOriginal.substring(separador + 3)));

            if (novoRegistro) {
                CidadeDAO.incluirCidade(cid);
            } else {
                cid.setCodCidade(fieldCodigo.getText());
                CidadeDAO.alterarCidade(cid);
            }
        } catch (Exception ex) {
            d.showMessageDialog(null, ex.getMessage(), "Erro de gravação", 0);
        }

        super.gravarDados();
    }

o combo nao trás os estados gravados no banco, alguem sabe pq? ;x

2 Respostas

Thiago_MuiLoko

Vc ja tentou ver se a query ta retornando os valores?

Aproveita e tenta tbm remover o codigo que consulta o banco e faz inserir o valor direto pra ver se ta rolando.

tenta ae e coloca o resultado.

abs

frankwco

pesquise um pouco sobre comboBoxModel, eh bem tranquilo de trabalhar…
se precisar de exemplo pode falar…

Criado 13 de agosto de 2010
Ultima resposta 13 de ago. de 2010
Respostas 2
Participantes 3