JTable + ScrollBar (SUMINDO)

Olá, estou com um problema muito chato em meu programa e ja fiz todos os testes possíveis e nada da certo!

É o seguinte.

Eu tenho uma JTable com empresas, é possível visualizar suas próprias empresas e todas as empresas existentes no banco.

O programa inicia carregando todas as empresas do banco. até ai tudo bem!

Se por acaso eu vou no menu e tento listar novamente todas as empresas ( sendo que elas ja estão listadas ) o ScrollBar some, simplesmente, não é possível descer a lista para visualizar as outras empresas.

Se eu vou no menu e mando listar apenas as minhas empresas, e mando listar novamente todas as empresas. o Scrollbar aparece corretamente, ele só não aparece quando eu tento clicar pra listar quando todas as empresas ja estão sendo listadas.

É um bug muito irritante, e eu não tenho mais idéia do que fazer!

Quando o SCROLLBAR não aparece se eu clicar numa das linhas e ir descendo com a seta do teclado até o final das linhas a ScrollBar aparece e eu consigo movimenta-la novamente

Ja setei o ScrollBarPolicy para always, ja tentei chamar o método de listar apenas a do usuário antes de listar todas e não funciona.

Alguém tem idéia do que pode ser?

Olá pessoal, eu consegui encontrar o erro mas se alguem pudesse me explicar o motivo eu agradeceria!

Eu tenho um método que carrega colunas dinamicamente buscando-oas no banco de dados

[code] final String[] colunas = carregaColunasImpostos(tipo);

    jTable2.setModel(new javax.swing.table.DefaultTableModel(
            new Object[][]{
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            colunas) {

        Class[] types = carregaCheckbox(colunas.length);

        @Override
        public Class getColumnClass(int columnIndex) {
            return types[columnIndex];
        }
    });
   jScrollPane1.setViewportView(jTable2);
    jTable2.getColumnModel().getColumn(0).setPreferredWidth(520);[/code]

E tenho a linha jScrollPane1.setViewportView(jTable2);, quando eu comentei ela o Scroll deixou de desaparecer mas no próprio código gerado
no netbeans ele utiliza esta linha, qual o motivo deste acontecimento?

Entenda como um TableModel funciona e nunca mais você terá esse problema.
O ideal é alterar só os dados do modelo, não toda a tabela.

Não use DefaultTableModel, os links da minha assinatura ensinam você a realmente entender o JTable.