mas fui tentar fazer o select no banco e não consegui de maneira nenhuma… fiz várias vezes tentativas de fazer trys de várias maneiras e não consegui adicionar pelo object…
tem sim, vc tem q implementar seu próprio TableModel ao invés de usar o DefaultTableModel. aí vc embute nele o select, o create, o update, o delete e o q mais precisar. aqui vai um exemplo (de um banco não-sql, ifelizmente…) de um tablemodel personalizado:
/* * FuncionarioTableModel.java * * Created on 18 de Novembro de 2006, 02:29 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */packagevisual.model;importentidades.pessoas.Funcionario;importjava.util.List;importjavax.swing.event.TableModelListener;importjavax.swing.table.AbstractTableModel;importjavax.swing.table.TableModel;importpersistencia.Banco;importutil.Util;/** * Classe FuncionarioTableModel * * Esta classe é a implementação do modelo de tabela que é utilizado na tabela *de funcionários. Aqui implementamos métodos obrigatórios da interface e nos *apoiamos no sistemas de ouvintes já existente na classe abstrata. * * @author sombriks */publicclassFuncionarioTableModelextendsAbstractTableModelimplementsTableModel{privateList<Funcionario>data;privateBancob;privateUtilutil;/** * Para construirmos um Modelo de Dados para funcionários, precisamos *basicamente de uma referência ao banco e da classe util. */publicFuncionarioTableModel(Bancob,Utilutil){this.b=b;this.util=util;}/** * Implementação requisitada pela interface */publicintgetRowCount(){returndata!=null?data.size():0;}/** * Implementação reuisitada pela interface */publicintgetColumnCount(){return10;}/** * Implementação requisitada pela interface e sobrecarga de método já *existente na classe abstrata */publicStringgetColumnName(intcolumnIndex){switch(columnIndex){case0:return"id";case1:return"login";case2:return"nome";case3:return"nome do pai";case4:return"nome da mãe";case5:return"data de nascimento";case6:return"nº da identidade";case7:return"salário mensal";case8:return"nível de acesso";case9:return"telefone";default:return"";}}/** * Implementação requisitada pela interface abstrata */publicObjectgetValueAt(introwIndex,intcolumnIndex){if(getRowCount()>0){switch(columnIndex){case0:returndata.get(rowIndex).getId();case1:returndata.get(rowIndex).getLogin();case2:returndata.get(rowIndex).getNome();case3:returndata.get(rowIndex).getNomePai();case4:returndata.get(rowIndex).getNomeMae();case5:returnUtil.formatData(data.get(rowIndex).getDataNasc());case6:returndata.get(rowIndex).getIdentidade();case7:return"R$ "+data.get(rowIndex).getSalario();case8:returndata.get(rowIndex).getLvAcesso();case9:returndata.get(rowIndex).getTelefone();default:returnnull;}}returnnull;}/** * Implementação requisitada pela interface e sobrecarga de método já *existente na classe abstrata */publicbooleanisCellEditable(introwIndex,intcolumnIndex){returnfalse;}/** * Método criado para facilitar a inserção de dados no modelo. */publicvoidinsert(Funcionariof){if(f!=null)b.set(f);select(null);}/** * Método criado para facilitar a atualização de dados no modelo. * * TODO -- isto está muito xerox do insert... */publicvoidupdate(Funcionariof){if(f!=null)b.set(f);select(null);}/** * Método criado para facilitar a deleção de dados no modelo. */publicvoiddelete(Funcionariof){if(f!=null)b.delete(f);select(null);}/** * Através deste método podemos popular a tabela com dados provenientes do *banco de dados. */publicvoidselect(Funcionariof){if(f==null)data=b.select(Funcionario.class);elsedata=b.select(f);fireTableDataChanged();}/** * Este método nos auxilia na seleção de um determinado funcionário para *podermos manipular seus dados. */publicFuncionariogetFuncionario(intindex){returndata.get(index);}}
flavi0
não tem como eu adicionar pelo DefaultTableModel…?
tenho que criar um estilo??
loganwlogan
Amigo Flavio, até acredito que tenha contudo oDefaultTable model é bem limitado através da construção do seu próprio TableModel vc consegue termais versatilidade e agilidae vc implementa da menira que melhor for pra vc, agora para os nomes das colunas eu usaria o DefultCloumnModel ele ta da mais agilidade e vc trabalha separado o tratamento de população da JTable dos processos Administrativos como nomes e tamanhos de colunas.