JTable + ScrollBar (SUMINDO)

2 respostas
L

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?

2 Respostas

L

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

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

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?

ViniGodoy

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.

Criado 28 de janeiro de 2013
Ultima resposta 28 de jan. de 2013
Respostas 2
Participantes 2