Erro no evento do botão Pesquisar

2 respostas
C
Erro na linha:
DefaultTableModel def = (DefaultTableModel)jTusuario.getModel();
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: pacote_util.TabelaUsuario A duvida é: como eu faço pra mostrar na tabela o resultado da pesquisa
private void jBpesquisarActionPerformed(java.awt.event.ActionEvent evt) {
          Vector colunas = new Vector();
	               colunas.add("Código");
	               colunas.add("Nome");
	               colunas.add("Permissão");
                     
           CadastroUsuario cad_usu = new CadastroUsuario();
           Vector linhaselecionada = cad_usu.getLista(jTnomebusca.getText().trim());
         
           DefaultTableModel def = (DefaultTableModel)jTusuario.getModel();
         
           def.setDataVector(linhaselecionada,colunas);           
    }

//método da Classe CadastroUsuario
public Vector getLista(String buscaNome){
        Vector vecColunas;
        Vector vecLinhas = new Vector();
        try{
            this.con = Conexao.getConexao();    
            PreparedStatement pstm = this.con.prepareStatement("SELECT CodUsuario, NomeUsuario, PermissaoUsuario FROM usuario WHERE NomeUsuario LIKE ?");
            pstm.setString(1,buscaNome+"%");            
            ResultSet rs = pstm.executeQuery();
            
            while(rs.next()){
                vecColunas = new Vector();
                vecColunas.add(rs.getString("CodUsuario"));
                vecColunas.add(rs.getString("NomeUsuario"));
                vecColunas.add(rs.getString("PermissaoUsuario"));
           
                vecLinhas.add(vecColunas);
            }
            pstm.close();
            rs.close();
            
        }catch(SQLException e){
            e.printStackTrace();
        }
        return vecLinhas;
    }
      
    
 }

2 Respostas

BrunoBastosPJ

Estranho, eu faço isso no meu netbeans e ele funciona sem problemas…

Existem 2 classes que implementam TableModel, uma delas é abstrata, pode ser que esse método esteja retornando alguma classe que herdou a classe AbstractTableModel.

Faz essa linha de comando pra ver qual classe está sendo retornada:

System.out.println( jTusuario.getModel().getClass().getName() );
C

No lugar de:

DefaultTableModel def = (DefaultTableModel)jTusuario.getModel();
def.setDataVector(linhaselecionada,colunas);

põe:

jTusuario.setModel(new DefaultTableModel(linhaSelecionada, colunas));

[/code]

Criado 10 de março de 2007
Ultima resposta 29 de mar. de 2007
Respostas 2
Participantes 2