Preencher jTable

Bom dia galera, gostaria de saber como faz pra preencher uma jTable apartir de uma pesquisa feita!
e ir adicionando…

segue o codigo da pesquisa:

[code]try {

        Connection con = ConnectionDAO.getConnection();

        //pesquisa no banco
        String query = "SELECT * FROM fornecedor WHERE idFor LIKE ?";

        PreparedStatement stmt = con.prepareStatement(query);

        stmt.setString(1, "%" + tfCodfor.getText()+ "%");

        ResultSet rs = stmt.executeQuery();

        DefaultTableModel model = (DefaultTableModel) jTable2.getModel();

        model.setNumRows(0);

        while(rs.next()){

            model.addRow(new Object[]{rs.getString("idFor"),
            rs.getString("nome"),
            rs.getString("telefone"),
            rs.getString("tipo"),
            });

        }

    } catch (SQLException e){
        System.out.println("Ocorreu um erro de SQL");

    }[/code]

Obrigado

Eu aprendi a fazer isso recentemente… podem existir jeitos melhores, mas este deu certo, eu peguei os resultados da pesquisa e joguei num array de objetos (o que a tabela lê), e criei outro array de Strings que seriam as colunas da tabela. Aí ao criar a tabela no código, você usa o .setModel indicando esses dois arrays criados :

tabela.setModel(new DefaultTableModel(arraylinhas,arraycolunas));

quanto à adicionar estou procurando saber como atualizar etc mas nada que estou tentando está funcionando por enquanto =
espero ter ajudado!

joao.segali e xcah acho que esse código serve para vocês:

    private void preencher_Jtable(){  
  
        jTableCadMaquina.getColumnModel().getColumn(0).setPreferredWidth(20);  
        jTableCadMaquina.getColumnModel().getColumn(1).setPreferredWidth(150);  
        jTableCadMaquina.getColumnModel().getColumn(2).setPreferredWidth(20);  
  
   DefaultTableModel modelo = (DefaultTableModel)jTableCadMaquina.getModel();  
   modelo.setNumRows(0);  
  
   try{  
       while (con_CadMaquina.resultset.next())  
           modelo.addRow(new Object[]{con_CadMaquina.resultset.getString("cod_maquina"),  
           con_CadMaquina.resultset.getString("nome_maquina"),  
           con_CadMaquina.resultset.getString("capacidade")});  
         
           con_CadMaquina.resultset.first();  
  
   }  
   catch(SQLException erro){  
       JOptionPane.showMessageDialog(null, "Não Localizou dados");  
   }  
    
  
    }

Luciano_Lopes

fiz como você falou e deu certo na primeira, só que ao tentar adicionar um novo registro uma segunda vez, dá erro… o.O"

xcah,sempre que você excluir ou adicionar um dado na tabela você deve chamar o procedimento acim para poder atualizar o jtable

msm coisa aconteceu comigo, vc vai colocar adicionar outro nao da certo!

Ah, estava chamando toda vez no clique do botão, mas tinha alguma coisa referente à um array que eu usava que estava com o tamanho limitado… aí consegui resolver, acho que foi isso o.O"

Obrigada!

[quote=xcah]Ah, estava chamando toda vez no clique do botão, mas tinha alguma coisa referente à um array que eu usava que estava com o tamanho limitado… aí consegui resolver, acho que foi isso o.O"

Obrigada![/quote]
O JTable Annotations pode te ajudar a fazer isso!

Não sei o que é mais triste… eu recomendar todos os dias a não usar DefaultTableModel, ou ter gente no GUJ que ainda dá a dica pro cara fazer o Default…
DefaultTableModel é um atraso de vida. É uma solução simples que se torna trabalhosa com o tempo, que tem pouca performance e que consome um caminhão de memória.

A solução para preencher um JTable é entender como o JTable funciona. E para isso, você precisa estudar como fazer um TableModel. Leia os links da minha assinatura, que tem muitas explicações sobre como fazer isso.

ai te da uma dica cria uma classe que implementa TableModel.

ai vc faz o q quiser com a tabela;

Como eu falei, o que a maioria dos programadores faz quando encontra um problema é tentar resolver com o que conheçe, a principio parece ser uma otima pratica, mas penso q se vc quer se tornar um bom programador vc tem q começar a aprender novas coisas para resolver akele problema, dessa forma quando mais tempo vc tiver de experiencia, mais coisas vc vai conhecer

ta ai a dica