Oi, bom dia!
Vamos la, o primeiro metodo (esconder_colunas()) vc pode colocar assim que preencher a tabela, tipo:
public void preencherTabela (String SQL){
........
esconder_colunas();
}
Ou se preferir, deixar por padrao (sem o metodo) mostrando todas. eu acho melhor assim
O segundo metodo vc coloca dentro do if, exemplo:
if (jCheckBoxConsultaTabelaArenaVerdeTodos.isSelected()){
//so acho melhor vc colocar um nome mais curto nas variaveis
//ex: check_todos;
esconder_colunas();
mostrar_coluna(1);
//ai ao inves de deixar so o 1
//vc coloca o numero da coluna q vc quer exibir.
//ex: "quero mostrar a coluna "Compactabilidad",
//vc coloca o valor 0. E assim vai
}
Metodos:
private void esconder_colunas() {
try {
//Vc tem 9 colunas, certo?
//1 Compactabilidad, 2 RCV, 3 RTH, 4 Friabilidad, 5 Permeabilidad,
//6 Humedad, 7 Especimen, 8 Analista, 9 Temperatura.
//Entao se vc tem 9 colunas, vc tem 8 indices.
//OK, é chato ter que fazer isso (esconder as colunas) do 0 ao 8?
//Demais, entao faz assim:
for (int i = 0; i <= tabela.getColumnCount() - 1; i++) {
tabela.getColumnModel().getColumn(i).setMaxWidth(0);
tabela.getColumnModel().getColumn(i).setMinWidth(0);
tabela.getTableHeader().getColumnModel().getColumn(i).setMaxWidth(0);
tabela.getTableHeader().getColumnModel().getColumn(i).setMinWidth(0);
}
//pronto, vc ja escondeu todas.
} catch (Exception e) {
e.printStackTrace();
}
}
private void mostrar_coluna(int coluna) {
//Agora nao tem muito segredo, na hora que vc fizer o check
//no CheckBox, vc coloca o numero da coluna que quer mostrar
int tam_tabela = tabela.getSize().width;
tabela.getColumnModel().getColumn(coluna).setMaxWidth(tam_tabela);
tabela.repaint();
}
Porque é melhor fazer assim, do que buscar no banco a cada clique no jCheckBox?
- mesmo que seja imperceptivel, buscar no banco gasta memoria, pensa o usuario fazer esse tipo de seleçao o tempo todo? Vai consumir memoria desnecessaria.
- vc economiza tempo e codigo
- e mais um monte de coisa que eu to com preguiça de citar kkkkkk