Manter a ultima linha de um jTable sempre visível

6 respostas
Z

Olá pessoal,
estou a manhã inteira tentando achar como faer isso e não consigo. Estou usando um jTable dentro de um jScrollPane (NetBeans), e em tempo de execução vou inserindo linhas no jTable, conforme vão acontecendo os eventos do programa (tipo uma lista de eventos). Porém, quando enche a tela, ele continua inserindo, mas os dados ficam sempre em baixo. O que quero é que a ultima linha sempre fique com o foco, de modo que sempre fique aparecendo a ultima linha do jTable. Conseguiram entender?

Por favor, se alguém puder me ajudar serei muito grato.

Um abraço a todos!

6 Respostas

D

bem vindo ao PJ! :viva:
fala cara!
blz?

entao… nao sei se essa é a melhor solução… mas vc pode fazer o seguinte:

suaJTable.setRowSelectionInterval(int começo,int fim);

tenta aí… talvez funcione… heheh

flw!
abraços!

Z

Seguinte Daniel…
eu tentei exatamente isso ai, mas o que isso faz eh selecionar as linhas ( ou celulas), e na verdade eu precisaria mesmo é ‘setar o foco’, para que o cursos sempre fique na ultima linha… pois dessa forma que vc propos, o cursor pode estar na primeira linha e posso selecionar a ultima, por exemplo…
bom, valeu por enquanto e se mais alguem tiver uma dica, fico muito agradecido…
ate mais!

J

como voce esta adicionando a tabela o jscrollpane??

tenta adicionar assim:

jscrollPane.getViewport().add(jtable);

Z

Cara, vc deve ter perguntado como adicionei a tabelena 'no' jscrollpane, naum eh?
bom, eu estou usando o NetBeans, entaum foi ele que criou o codigo....
ta meio assim:

---------------------------------------------------------------------------------

jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Tipo", "Data", "Origem", "Categoria", "Evento", "Descrição"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jScrollPane1.setViewportView(jTable1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);

----------------------------------------------------------------------------------

Isso que vc falou, qual é a gunção? Onde posso inserir? Eu tentei inserir logo depois que insiro uma linha na tablea, mas não funcionou...
por enquanto, valeu pela ajuda...

Z

E ai pessoal, alguém tem mais alguma sugestão?

Z

Pessoal, realmente estou precisando resolver esse problema… alguem tem mais alguma sugestão!

p.s. - desculpem a insistencia, mas é a necessidade da coisa! hehehe

valeu!!!

Criado 10 de setembro de 2004
Ultima resposta 15 de set. de 2004
Respostas 6
Participantes 3