Rolar automaticamente um jScrollPane

Olá pessoal,

Eu criei uma tabela e junto com a mesma, existe um jScrollPane… Eu vou adicionando valores na tabela a medida que o programa vai sendo executado mas chega uma hora que o espaço que eu reservei para a minha tabela ultrapassa o tamanho que eu limitei para a mesma e o jScrollPane aparece… Eu gostaria que, de alguma forma, o jScrollPane fosse rolando pra baixo a medida que surgissem as novas linhas… Ou seja… a ultima linha da tabela estaria sempre visivel na tela…

Espero que eu tenha sido claro na minha dúvida…

Aguardo ajuda…

Agradeço desde já,
DanielSR

int maxValue = scroll.getVerticalScrollBar().getMaximum();
scroll.getViewport().setViewPosition(new Point(0,maxValue));
1 curtida

Perfeito… Muitissimo obrigado maxguzenski!!!

Max, fazendo alguns testes, eu vi que as vezes, na hora de inserir novos dados na tabela, a posição onde o novo valor deveria ser inserido (sempre no final da tabela) se embaralha e começa a inserir valores no meio da tabela e coisa do tipo… Como se o ponteiro que aponta a linha onde o elemento será inserido fosse pro meio da tabela do nada…

Alguem sabe pq acontece isso?

nao… mas poste um trecho do seu codigo ai.

A parte do código que eu estou usando a sua dica é a seguinte:

DefaultTableModel modelo = (DefaultTableModel) jTableResposta.getModel();
for (int i=0;i<resultadoTabela.size();i++) {       
      modelo.addRow(resultadoTabela.get(i));
      int maxValue = jScrollPane1.getVerticalScrollBar().getMaximum();
      jScrollPane.getViewport().setViewPosition(new Point(0,maxValue));
}

Pode parecer estranho isso aí, mas está dessa forma porque joguei isso numa Thread para que os dados não surjam de uma vez na tabela… Mas sim, temporizadamente… Dando a impressão que está sendo resolvido aos poucos… (eu enxuguei o resto do código pra sobrar apenas o q era importante aqui pro tópico)

A medida que essa thread vai sendo executada, eu consigo perceber q a tabela fica piscando e recebendo as novas linhas… Mas algumas vezes as linhas nao sao inseridas no final da tabela… As vezes fica embaralhado o lugar onde ela adiciona as novas linhas…

No aguardo de alguma ajuda…

Obrigado pela atenção,
DanielSR

voce sobrescreveu o Model da tabela talves? pq senao, nao sei o que esta acontecendo.

Eu “acho” que consegui consertar o problema… De qualquer forma… Muito obrigado pela ajuda anterior sobre manter o jScrollPane sempre mostrando a ultima linha… Aquilo lá foi muito útil…

Eu consertei apenas jogando o model fora do for (como eu mostrei aqui)… Tava dando problema qdo o model tava dentro do for… Dae qdo eu fui colar o código aqui q eu percebi isso… Bom… eu acho que isso q pode ter sido consertado… Não fiz mais nada…

Muito Obrigado max…

Até,
DanielSR

Eu “acho” que consegui consertar o problema… De qualquer forma… Muito obrigado pela ajuda anterior sobre manter o jScrollPane sempre mostrando a ultima linha… Aquilo lá foi muito útil…

Eu consertei apenas jogando o model fora do “for” (como eu mostrei aqui)… Tava dando problema qdo o model tava dentro do “for”… Dae qdo eu fui colar o código aqui q eu percebi isso e mudei… Bom… eu acho que isso q pode ter sido consertado… Não fiz mais nada…

Muito Obrigado max…

Até,
DanielSR