Qual o erro desse combobox

8 respostas
Willdoidao

Pesquisando aqui no forum achei alguns topicos que ensinavam como voltar uma informação ao combox, pq acontece o seguinte tenho uma tela de busca que o usuario digita um codigo e volta a informação, no Jtext normal a invormação vem certinha mas no s combobox não está ficando na posição que eu quero, como for exemplo tem um que é de fornecedores ele não está indo para o fornecedor cadastrado.
O codigo que estou usando é:

JC_Fab.addItem(rs.getString("Fabricante"));

8 Respostas

Scoobydoo

Bota seu código inteiro ai que eu ja te ajudo…
me explica direitinho o que você quer fazer…

Willdoidao

to fazendo uma busca no banco e tentando voltar as informações para o usuario ver, segue o codigo:

busca = JT_ref.getText();
        busca = busca.trim();
        busca = busca.toUpperCase();

        try {
            // Cria e executa uma instrução SQL
            MeuState = conn.createStatement();
        } catch (SQLException ex) {
            ex.printStackTrace();
            JOptionPane.showMessageDialog(null, "erro de STATEMENT");
        }
        try {
            rs = MeuState.executeQuery("select * from arma where refe='" + busca + "';");
            System.out.println(rs);

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema de conexao: " + ex.getMessage());
        }
        try {

            if (rs.next()) {
                 do{
                    JC_tipo.addItem(rs.getString("Tipo"));
                    JC_modelo.addItem(rs.getString("Modelo"));
                    JT_cor.setText(rs.getString("Cor"));
                    JC_Fab.addItem(rs.getString("Fabricante"));

                    auxiliar3 = rs.getInt("Quanti");
                    JT_qua.setText(String.valueOf(auxiliar3));

                    auxiliar3 = rs.getInt("Tamanho");
                    JT_tam.setText(String.valueOf(auxiliar3));
                    id = rs.getInt("Id_arma");
                }while(rs.next());
            } else {
                JOptionPane.showMessageDialog(null, "Não existe no Cadastro!");
            }

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Problema de conexão: " + ex.getMessage());
        }
viniciusfaleiro

Postei seu erro…rs stack

Scoobydoo
Então.... Tente Fazer Assim.... No Lugar Disso
if (rs.next()) {   
                do{   
                   JC_tipo.addItem(rs.getString("Tipo"));   
                   JC_modelo.addItem(rs.getString("Modelo"));   
                   JT_cor.setText(rs.getString("Cor"));   
                   JC_Fab.addItem(rs.getString("Fabricante"));   
  
                   auxiliar3 = rs.getInt("Quanti");   
                   JT_qua.setText(String.valueOf(auxiliar3));   
  
                   auxiliar3 = rs.getInt("Tamanho");   
                   JT_tam.setText(String.valueOf(auxiliar3));   
                   id = rs.getInt("Id_arma");   
               }while(rs.next());   
           } else {   
               JOptionPane.showMessageDialog(null, "Não existe no Cadastro!");   
           }
COloque assim
if(rs !=null){
               while(rs.next()) {   
                   JC_tipo.addItem(rs.getString("Tipo"));   
                   JC_modelo.addItem(rs.getString("Modelo"));   
                   JT_cor.setText(rs.getString("Cor"));   
                   JC_Fab.addItem(rs.getString("Fabricante"));   
  
                   auxiliar3 = rs.getInt("Quanti");   
                   JT_qua.setText(String.valueOf(auxiliar3));   
  
                   auxiliar3 = rs.getInt("Tamanho");   
                   JT_tam.setText(String.valueOf(auxiliar3));   
                   id = rs.getInt("Id_arma");   
               }
}
else{
Teu JOptionPane.....
}
Assim funciona.. Não tem erro nesse teu add... O que realmente está acontecendo... ele não adiciona o Item no ComboBox Fabricante ?????
Willdoidao

Então erro não dá não, uso um do-while pq pode ser que não aja o produto cadastrado, e com owhile não estava dando certo, mas o que preciso mesmo é que o combobox fabricante (por exemplo ) volte para o fabricante cadastrado.
Exemplo:

Se cadastrei GENERICO, quero que quando realizar a busca o combobox vá para o GENERICO contido nele, deu para entender?

Scoobydoo

Bom… Dificil entender… foi mal mesmo… eu tmb sou pitoco :cry:
Mas assim, um modo de você ir para uma position no ComboBox é por armazenando a position dele…
mas onde você realiza o cadastro… e pra que serve esse select… Eu sei que é chato mas precisamos entender isso

Willdoidao

o select serve para buscar uma determinda informação dado pelo usuario tipo ele quer pesquisar os fornecedores então ele digita o nome do fornecedor e o sistema volta as informações desse fornecedor, os campos de texto estão funcionando bem voltam a informação do banco o unico problema é os combobox que não estão voltando para a informação armazenda no banco.

eberson_oliveira

olá Willdoidao,

Experimente fazer o seguinte:

no trecho que você vai preencher o combobox do fabricante:

String fabricante = rs.getString("Fabricante");

JC_Fab.addItem( fabricante ); 
JC_Fab.setSelectedItem( fabricante ); //usa esse método para posicionar o combo do fabricante...

Porém, de acordo com o seu código, se o seu rs tiver n registros o fabricante exibido será aquele que estiver no último registro.
Quantos registros o seu select traz? Quantos deveria trazer? Talvez por isso não tenha alcançado o objetivo "esperado".

Espero ter ajudado

[]s

Criado 23 de fevereiro de 2010
Ultima resposta 23 de fev. de 2010
Respostas 8
Participantes 4