galera alguem pode me ajudar, estou buscando os cadastros do banco de dados e armazenando em um Vector, ai ai tudo bem, porem quando exibi-los em um jtable ele exibe apenas o ultimo cadastro a quantidade de vezes de cadastros cadastrados, ou seja, se tem 2 cadstros exibe o ultimo cadastro 2x
[code]public menuConsulta(final Vector resultados) {
initComponents(resultados);
botaoConsulta.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
javax.swing.table.DefaultTableModel dtm = (javax.swing.table.DefaultTableModel)table.getModel();
for(int i=0;i<resultados.size();i++){
System.out.print("\n"+"Dados do cliente cadastrado");
cliente cli = (cliente)resultados.get(i);
dtm.addRow(new Object[]{"",cli.getNome(),cli.getDataNascimento(), cli.getCPF(), cli.getRg(),cli.getEmail(),cli.getEndRua(),cli.getEndNro(),cli.getEndComp(),cli.getEndBairro(),cli.getEndCep(),cli.getCidade()});
}
}
});[/code]
- Não use Vector, use ArrayList: http://www.guj.com.br/posts/list/74068.java#389435
- Procure especificar o tipo da sua coleção ao declara-la. Ou seja, ao invés de:
public menuConsulta(final Vector resultados)
Faça:
- Não use DefaultTableModel: É mais difícil, mais inseguro, consome mais memória e é mais lento, siga o link da minha assinatura para aprender a usar o JTable;
você também tem a opção de utilizar alguma TableModel pronta, por exemplo a ObjectTableModel do Mark_Ameba…
se não me engano o ViniGodoy também fez uma que implementa auto-filtro…
mas o interessante seria você criar a sua pra saber como funciona e esquecer definitivamente da DefaultTableModel
blz…estou utilizando agora o arrayList e o jtable do seu tutorial, porem continuo com o mesmo problema, é exibido apenas o ultimo cadastro
acho que é nessa parte que estou errando
na classe menuConsulta
modelo = new ClienteTableModel();
// este parte de baixo da erro no netbeans por isso nao estou utilizando
//modelo.addTableModelListener(this);
modelo.adicionaLista(resultados);
e na classe ClienteTableModel
public void adicionaLista(List<cliente> resultados) {
clientes.addAll(resultados);
fireTableRowsInserted(i, i + resultados.size());
}
esse List resultados esta com os dados dos clientes, falta apenas exibir todos os cadastros
agradeco a ajuda de vcs
abraço