staroski eu criei sim o meu TableModel e esta funcionando direitinho, mas quando eu começo digitar o no JTexfILd de pesquisa e começa filtar a pesquisa ele perder a configuração do TableModel e assume a confuguralçao da tabela igual no banco de dados.
abaixo esta o método que atualiza a tabela, esta funcionando.
public void atualizaTabela(String sql){
ArrayList dados = new ArrayList();
String [] Colunas = new String[]{"ID","Nome","E-mail","Telefone","Usuário","Senha","Perfil","Status"};
try {
conexao = ConexaoDB.ConexaoMySQL.conector();
pst= conexao.prepareStatement(sql);
rs = pst.executeQuery();
rs.first();
do{
dados.add(new Object[]{rs.getInt("id"),rs.getString("nome"),rs.getString("email"),rs.getString("telefone"),rs.getString("usuario"),rs.getString("senha"),rs.getString("perfil"),rs.getString("status")});
}while(rs.next());
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "ERRO AO ATUALIZAR TABELA:\n " + e.getMessage());
System.out.println(e.getMessage());
}
ModelTabelaUsuario modelTabUso = new ModelTabelaUsuario(dados, Colunas);
jtUsuario.setModel(modelTabUso);
jtUsuario.getColumnModel().getColumn(0).setPreferredWidth(35);
jtUsuario.getColumnModel().getColumn(0).setResizable(false);
jtUsuario.getColumnModel().getColumn(1).setPreferredWidth(175);
jtUsuario.getColumnModel().getColumn(1).setResizable(false);
jtUsuario.getColumnModel().getColumn(2).setPreferredWidth(130);
jtUsuario.getColumnModel().getColumn(2).setResizable(false);
jtUsuario.getColumnModel().getColumn(3).setPreferredWidth(100);
jtUsuario.getColumnModel().getColumn(3).setResizable(false);
jtUsuario.getColumnModel().getColumn(4).setPreferredWidth(60);
jtUsuario.getColumnModel().getColumn(4).setResizable(false);
jtUsuario.getColumnModel().getColumn(5).setPreferredWidth(60);
jtUsuario.getColumnModel().getColumn(5).setResizable(false);
jtUsuario.getColumnModel().getColumn(6).setPreferredWidth(50);
jtUsuario.getColumnModel().getColumn(6).setResizable(false);
jtUsuario.getColumnModel().getColumn(7).setPreferredWidth(50);
jtUsuario.getColumnModel().getColumn(7).setResizable(false);
jtUsuario.setAutoResizeMode(jtUsuario.AUTO_RESIZE_OFF);
jtUsuario.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
E abaixo esta o método de pesquisa, quando uso ele peser a configuração do meu TableModel.
public void pesquisaUsuario(){
String sql = "select * from tbl_usuario where nome like ?";
try {
pst = conexao.prepareStatement(sql);
pst.setString(1, jtfPesquisa.getText() + '%');
rs = pst.executeQuery();
jtUsuario.setModel(DbUtils.resultSetToTableModel(rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(this, "ERRO AO PESQUISAR USUÁRIO:\n " + e.getMessage());
}
}