Ola a todos. Tudo bem?
A intenção desse Topico não é fazer uma pergunta e sim deixar uma dica sobre o DefaultTableModel, Vamos lá.
Tenho visto em muitos topicos de conversa tanto aqui no guj quanto em outros forums dizendo que “DefaultTableModel é Ruim”, “Não utilize DefaultTableModel”. E o que eu tenho a dizer sobre isso é que o que esta errado não é utilizar o DefaultTableModel e sim a forma como estão utilizando (no meu caso utilizava), Alem do problema não ser só com essa class e sim com a falta de estruturação e padronização do projeto.
A forma utilizada por quem esta comessando a programar geralmente é criar os frames das tela e lá mesmo colocar as funções de regras de negocio, cadastro e o mais neccessario.
Eis a baixo um exemplo de codigo geralmente usado:
private void jBNomeActionPerformed(java.awt.event.ActionEvent evt) {
Pessoa p = new Pessoa();
String nome = jTNome.getText();
String sobrenome = jTSobrenome.getText();
p.setNome(nome);
p.setSobrenome(sobrenome);
//regras de negocio
pessoa.add(p);
carregaTabela();
}
private void carregaTabela(){
DefaultTableModel model = new DefaultTableModel();
model.addColumn("Nome");
model.addColumn("Sobrenome");
for (Pessoa pessoa1 : pessoa) {
model.addRow(new Object[]{pessoa1.getNome(),pessoa1.getSobrenome()});
}
jTable1.setModel(model);
}
A utilização do desse codigo funcionaria?
Sim, mas necessita de repetição de codigo e não fica muito organizado, fora que o DefaultTableModel não foi pensado para essa função.
Essa implementação da TableModel serve para gerenciar um vetor bidirecional de objetos.
Sendo assim tem funções para gernciar esse tipo de estrutura, veja esses video a seguir com exemplo de utilização.
Video 1: https://www.youtube.com/watch?v=Q2_YTOR7Qic
Video 2: https://youtu.be/ABJJDahiLpw
Deixe comentarios dizendo o que vcs acharam do video. Obrigado.