Ajuda! Como mudar o valor do combobox de acordo com o dado escolhido

0 respostas
V

Bom olá galera sou novo aqui e estou precisando de uma ajuda é o seguite:

Tenho uma tela chamada cadastro de curso com um combobox chamado Status onde defino se o curso está ativo ou inativo, também tem um jtable com os cursos cadastro no banco.
No banco criei 2 tabelas uma chamada tab_curso e outra tab_status_curso.

O meu problema é o seguinte mapeei todas as tabelas e tudo certinho só que quando por exemplo clico em um valor do jtable ele seta todos os dados daquele valor nos textfields porem o combobox não muda fica sempre o mesmo.

Ex.: Eu clico no jTable na linha onde tem o curso "Informatica" (que no banco eu cadastrei como inativo) ai todos os dados de informatica vai pros textfield (Nome, Descrição) só que no combobox nao muda o valor de ativo pra inativo. Ele so popular o combo com os dados que eu tenho na tabela tab_status_curso. os codigos que eu usei estão logo abaixo.

Código pra preencher o jtable com os dados do banco e setar os textfield com o primeiro dado cadastrado
public void preencher_tblcurso() {
        tblCurso.getColumnModel().getColumn(0).setPreferredWidth(100);
        tblCurso.getColumnModel().getColumn(1).setPreferredWidth(10);
        tblCurso.getColumnModel().getColumn(2).setPreferredWidth(250);
        
        DefaultTableModel modelo = (DefaultTableModel) tblCurso.getModel();
        modelo.setNumRows(0);

        SessionFactory grupoSessoes = new Configuration().configure().buildSessionFactory();
        Session sessao = grupoSessoes.openSession();

        try {
            List<TabCurso> list_cursos = new ArrayList();
            list_cursos = sessao.createQuery("from TabCurso").list();
            int tamanho_lista = list_cursos.size();
            
           
            for (int i = 0; i < tamanho_lista; i++) {

                TabCurso curso = list_cursos.get(i);
                modelo.addRow(new Object[]{curso.getNomeCurso(),
                                           curso.getTabStatusCurso(),
                                            curso.getDescCurso()});
            
            }
            if (! list_cursos.isEmpty()) { // Seta o primeiro dado do banco para os textField
                    
                    TabCurso curso = list_cursos.get(0);
                    txtNomeCurso.setText(curso.getNomeCurso());
                    combStatus.setSelectedItem(curso.getTabStatusCurso());
                    txtDescCurso.setText(curso.getDescCurso());

                }
            
                
        } catch (Exception erro) {
            JOptionPane.showMessageDialog(null, "Erro ao preencher tabela de Cursos " + erro);
        }
    }
Codigo para preencher o combobox com os dados da tabela de tab_status_curso
public void preencher_combStatus() {
        
        SessionFactory grupoSessoes = new Configuration().configure().buildSessionFactory();
        Session sessao = grupoSessoes.openSession();
        
        try {
            
            List<TabStatusCurso> list_status = new ArrayList();
            list_status = sessao.createQuery("From TabStatusCurso").list();
            int tamanho_comb = list_status.size();
            
            combStatus.removeAllItems();
            
            for (int i = 0; i < tamanho_comb; i++) {
                
                combStatus.addItem(list_status.get(i));
            }
            
        } catch (Exception erro) {
            JOptionPane.showMessageDialog(null, "Erro ao preencher tabela de Cursos" + erro);
        }
    }
Codigo para setar os dados para os textfields quando eu clica no jtable
private void tblCursoMouseClicked(java.awt.event.MouseEvent evt) {
    int linha = tblCurso.getSelectedRow();
    txtNomeCurso.setText(tblCurso.getValueAt(linha, 0).toString());
    combStatus.setSelectedItem(tblCurso.getValueAt(linha, 1).toString());
    txtDescCurso.setText(tblCurso.getValueAt(linha, 2).toString());

O que está errado se puderem me ajudar.

Criado 15 de setembro de 2011
Respostas 0
Participantes 1