[RESOLVIDO]JTable desaparece quando lincado ao DefaultTableModel
5 respostas
leorbarbosa
Bom dia pessoal,
fiz uma aplicação simples usando Swing, e ao realizar uma consulta ao banco que traz registros (já verifiquei), o JTable simplesmente desaparece quando lincado ao DefaultTableModel. Segue abaixo o código:
// bloco tryDaoFuncionarioobjDaoFuncionario=newDaoFuncionario();// Monta critérios de pesquisaobjDaoFuncionario.setPesquisa(jComboBox1.getSelectedIndex());objDaoFuncionario.setCondicao(jComboBox2.getSelectedIndex());objDaoFuncionario.setConteudo(jTextField1.getText());DefaultTableModelmodelo=newDefaultTableModel();Vectorvetor=newVector();vetor.addAll(objDaoFuncionario.procuraFuncionario(""));modelo.addRow(vetor);jTable1.setModel(modelo);// bloco try
Obs: como as colunas já foram definidas em tempo de design, não precisei fazer ‘addColumn’.
Como você instanciou DefaultTableModel com o construtor padrão sem parâmetros na linha 10, seu novo TableModel não tem colunas. Você precisará adicionar as colunas de que precisa via addColumn(). Lembre-se de que, ao usar JTable.setModel(), você está SOBREPONDO o TableModel que definiu em tempo de design, e portanto as colunas configuradas em tempo de design serão perdidas.
A propósito, não use DefaultTableModel. Uma boa alternativa é o ObjectTableModel criado pelo Marky.
leorbarbosa
Entendi,
mudei o código conforme abaixo:
Vector vetorDados = new Vector();
vetorDados.addAll(objDaoFuncionario.procuraFuncionario(""));
ArrayList cols = new ArrayList();
cols.add("Código");
cols.add("Nome");
cols.add("CPF");
cols.add("RG");
cols.add("MASP");
cols.add("Nascimento");
cols.add("Status");
Vector vetColunas = new Vector(cols);
DefaultTableModel modelo = new DefaultTableModel(vetColunas, 0);
modelo.addRow(vetorDados);
jTable1.setModel(modelo);
Só que agora está aparecendo o endereço do objeto da minha classe de consulta funcionários ‘gestaorhcf.ConsultaFuncionario@148662’ na primeira célula. E mais nada ???