Nome da colunas errados

Boa noite,
Tenho um metodo atualizaTabela(), para quando eu acessar, salvar,editar e excluir no formulario atualize minha tabela.
Na minha pesquisa estou usando o jtUsuario.setModel(DbUtils.resultSetToTableModel(rs));
ai quando faço uma pesquisa os nomes da minhas colunas perde a formatação que fiz, ai as colunas da minha tabela pega os nomes da colunas do banco de dados.

Como faço para ao fazer a pesquisa não pegar os nome das colunas do banco ?

Cria seu próprio TableModel e só atualiza a coleção de objetos que ele renderiza.

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());
    }
}

É que aqui você está usando um TableModel:

ModelTabelaUsuario modelTabUso = new ModelTabelaUsuario(dados, Colunas);
jtUsuario.setModel(modelTabUso);

E aqui está trocando o TableModel atual por um outro retornado pelo método DbUtils.resultSetToTableModel(rs):

jtUsuario.setModel(DbUtils.resultSetToTableModel(rs));

Utilize somente o primeiro e atualize o conteúdo do seu ArrayList dados;

Entendi mas como eu faço na hora de fazer minha opesquisa ?

Pois minha pesquisa funcionado assim: quando vou digitando vai filtrando na tabela apenas oque eu quero de acordo acom a ordem alfabetica que digito.

Da mesma forma que você faz no método atualizaTabela, itera o ResultSet e atualiza sua lista.

Supondo que seu TableModel seja assim:

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

public class ModelTabelaUsuario extends AbstractTableModel {

    private static final String[] COLUNAS = new String[] { "ID", "Nome", "E-mail", "Telefone", "Usuário", "Senha", "Perfil", "Status" };

    private List<Usuario> dados = new ArrayList<>();

    @Override
    public int getColumnCount() {
        return COLUNAS.length;
    }

    @Override
    public String getColumnName(int col) {
        return COLUNAS[col];
    }

    @Override
    public int getRowCount() {
        return dados.size();
    }

    @Override
    public Object getValueAt(int lin, int col) {
        if (lin < dados.size()) {
            Usuario usuario = dados.get(lin);
            switch (col) {
                case 0:
                    return usuario.getId();
                case 1:
                    return usuario.getNome();
                case 2:
                    return usuario.getEmail();
                case 3:
                    return usuario.getTelefone();
                case 4:
                    return usuario.getUsuario();
                case 5:
                    return usuario.getSenha();
                case 6:
                    return usuario.getPerfil();
                case 7:
                    return usuario.getStatus();
            }
        }
        return null;
    }

    /**
     * Este método você vai utilizar para atualizar o conteúdo da JTable
     */
    public void setDados(List<Usuario> dados) {
        this.dados = dados;
        fireTableDataChanged();
    }
}

Basta você intanciar seu JTable assim:

    jtUsuario = new JTable(new ModelTabelaUsuario());
    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);

Crie um método para atualizar seu TableModel a partir de um ResultSet:

private void atualizaTableModel(ResultSet rs) throws SQLException {
    List<Usuario> dados = new ArrayList<>();
    while (rs.next()) {
        Usuario usuario = new Usuario();
        usuario.setId(rs.getInt("id"));
        usuario.setNome(rs.getString("nome"));
        usuario.setEmail(rs.getString("email"));
        usuario.setTelefone(rs.getString("telefone"));
        usuario.setUsuario(rs.getString("usuario"));
        usuario.setSenha(rs.getString("senha"));
        usuario.setPerfil(rs.getString("perfil"));
        usuario.setStatus(rs.getString("status"));

        dados.add(usuario);
    }
    ModelTabelaUsuario tableModel = (ModelTabelaUsuario) jtUsuario.getModel();
    tableModel.setDados(dados);
}

E daí os métodos para atualizar e pesquisar ficam assim:

public void atualizaTabela(String sql) {
    try {
        PreparedStatement pst = conexao.prepareStatement(sql);
        ResultSet rs = pst.executeQuery();
        atualizaTableModel(rs);
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, "ERRO AO ATUALIZAR TABELA:\n " + e.getMessage());
    }
}

public void pesquisaUsuario() {
    try {
        String sql = "select * from tbl_usuario where nome like ?";
        PreparedStatement pst = conexao.prepareStatement(sql);
        pst.setString(1, jtfPesquisa.getText() + '%');
        ResultSet rs = pst.executeQuery();
        atualizaTableModel(rs);
    } catch (Exception e) {
        JOptionPane.showMessageDialog(this, "ERRO AO PESQUISAR USUÁRIO:\n " + e.getMessage());
    }
}

Obrigado, vou verificar esses codigos.
Valeu.

Eu dei uma alterada no código postado pra ficar mais fácil. :wink: