Bem gente, é isso mesmo, to tentando implementar na minha JTable a possibilidade de o usuário poder adicionar e remover colunas em tempo de execução. Adicionar já consegui implementar, porém to tendo problemas para remover, tipo, eu até consigo remove-la porém quando adiciono a mesma coluna novamente ela aparece duplicada, ou sejá, ela adiciona duas vezes a coluna, como se ao remover a coluna ela não fosse realmente removida mas apenas escondida, ai ele adiciona uma nova coluna e reexibe a que foi excluida.
abaixo segue os códigos
metodo adiciona coluna
public static void adicionarColunas(JTable tabela, DefaultTableModel modelo, Object titulo,
String colunBD, String colChave, ResultSet resultConsu, ResultSet resultCont){
TableColumn coluna = new TableColumn(modelo.getColumnCount());
coluna.setHeaderValue(titulo);
try {
resultCont.first();
resultConsu.first();
int ind = resultCont.getInt(colChave);
String linha[] = new String[ind];
for(int i = 0; i < ind; i++){
linha[i] = resultConsu.getString(colunBD);
resultConsu.next();
}
resultConsu.first();
tabela.addColumn(coluna);
modelo.addColumn(titulo.toString(), linha);
}
catch(SQLException erro){
JOptionPane.showMessageDialog(null,"Erro ao listar no JTable " + erro);
}
}
e aqui o método onde eu estou tendo problemas, metodo remove colunas
public static void removeColuna(JTable Tabela, String titulo){
int indice = Tabela.getColumnModel().getColumnIndex(titulo);
Tabela.removeColumn(Tabela.getColumnModel().getColumn(indice));
}
}
Bem agora antes que alguém pergunte. NÃO!, eu não estou usando AbtractTableModel, estou usando default.
Agora alguns motivos para eu não usa AbtractTableModel (1- A aplicação já está toda escrita em cima de DefualtTableModel sendo assim fica inviável mudar toda a estrutura das várias JTables existentes na aplicação, 2- Esse é meu primeiro trabalho sério em java não tenho grande dominio sobre JTable, 3- Implementar AbtractTableModel é complexo até hoje nunca achei nada de fácil entendimento sobre AbstractTableModel, 4- Implementar AbstractTableModel exigiria que eu dedicasse um tempo (sabesse-la quanto) para estudar o assunto e no momento eu estou correndo contra o tempo para concluir essa migração de um sistema CLIPPER para JAVA.
Em outro forum eu encontrei um tópico de alguém que estava tendo o mesmo problema, a galera até tentou ajudar até que apareceu um falando de AbtractTableModel e pronto, o tópico morreu.
Então peço aos senhores que por gentileza não me falem de AbstractTableModel :lol:
Eu conheço esse recursso, sei que ele trás muitas vantagens mas no momento ele não está adequado nesse caso.
Agradeço a todos que tentarem ajudar.