Recarregar valores no jComboBox do banco de dados mysql

2 respostas
pacscam

Olá pessoal pessoal já li alguns livro de java e agora resolvi por a mão na massa rs
então estou desenvolvendo um programa pra uma empresa e agora não estou conseguindo setar
o jComboBox novamente com o valor que já esta carregado na table. O jComboBox já esta esta carregando
do banco de dados mysql os dados da tabela ‘Funcao’ que nela só tem dois campos “codigo e descricao”.
O problema é que preciso carregar o combobox novamente como estava na tabela… para no caso se o usuario fosse alterar fazer uma
alteração.
ja tentei muita coisa rss
ai esta o meu codigo que carrega o combobox:

public void atualizaCombobox() throws SQLException {

String sql = "select * from funcao order by descricao";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);

    ResultSet rs = stmt.executeQuery();


    try {
        while (rs.next()) {
            jCBFuncao.addItem(rs.getString("codfuncao") + " - " + rs.getString("descricao"));
        }
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    rs.close();
    stmt.close();
}

quando eu clico na table do formulário funcionário
que também tem um uma tabela com vários campos e nela tem um campo que faz
referencia com a tabela ‘Função’ e só armazeno no o campo codigo da tabela 'função’
em fim preciso apenas de volta o comboBox de acordo com o valor da table
assim como faço para carregar jTextField use esse codigo:

jTNome.setText(listaFuncionario.get(tabela.getSelectedRow()).getNome());

eu tentei carregar o JComboBox com esse mas não deu em nada. olhem só:

jCBFuncao.setSelectedItem(listaFuncionario.get(tabela.getSelectedRow()).getFuncao());

o getFuncao() me retorna um valor int.

Pessoal se alguém puder me ajudar, agradeço desde já. :wink:

Paulo Camargo

2 Respostas

S

Olá amigo

tente isso:

private void inicializaCombobox() throws Exception {
    try {

       stmt = dbConnection.createStatement();
       // preenche a lista de Setores

       rs = stmt.executeQuery("select setor from setores order by setor");
       cboSetor.addItem("Selecione um item");
       while(rs.next()){
           cboSetor.addItem(rs.getObject(1));
       }
//       c.disconect();
       cboSetor.addItemListener(new ItemListener() {
       public void itemStateChanged(ItemEvent e) {
          if (e.getStateChange() == ItemEvent.SELECTED) {
              mostraSetor();
 	}
       } });
    } catch (Exception ex) {
             Logger.getLogger(FramePatrimonio.class.getName()).log(Level.SEVERE, null, ex);
    }
}


private void mostraSetor() {
    tfSetor.setText(cboSetor.getSelectedItem().toString());
}

Espero que isso ajude!

Silvio Guedes

pacscam

Obrigado ai Silvio pela atenção.
Esse código que vc me passou me ajudou em uma outra coisa que teria de ser feito :slight_smile:
então de acordo com seu código quando eu mudo a seleção JComboBox o jTField muda também
na realidade precisaria que fosse ao contrario… quando eu clico na grid ou seja a table eu pego os dados que estão na linha selecionada
e carrega os jtextFields. Gostaria que Jcombobox selecionasse ele próprio automático o item de acordo com a linha selecionada
já esta pronto e funcionando o metodo que faz isso mas nao consigo setar o jComboBox
para o valor que eu pego da table na linha selecionada
qual metodo eu utilizo para que ele selecione um valor já existente nele ?
abraços.

Criado 23 de agosto de 2010
Ultima resposta 24 de ago. de 2010
Respostas 2
Participantes 2