Preencher jTable

10 respostas
J

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:
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");

        }

Obrigado

10 Respostas

xcah

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!

Luciano_Lopes

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");  
   }  
    
  
    }
xcah

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"

Luciano_Lopes

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

J

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

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!

dreampeppers99

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!


O JTable Annotations pode te ajudar a fazer isso!

ViniGodoy

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.

T

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

ai vc faz o q quiser com a tabela;

T

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

Criado 26 de abril de 2011
Ultima resposta 27 de abr. de 2011
Respostas 10
Participantes 6