Barra de rolagem automatica

Gostaria de saber como faço para fazer uma barra de rolagem automatica, conseguui setar para a ultima linha, mas gostaria que a barra descesse aos poucos de ± 1 em 1 segundo, o textarea ta dentro de um scrollpane.

aguardo respostas

[]`s
lcm

Você pode alterar a barra ajustando os valores mínimo, máximo e atual da barra. Não tem segredo.

Nesse exemplo, coloco a barra na última posição de um JScrollPane chamado scrlPane:

JScrollBar vertical = scrlPane.getVerticalScrollBar(); vertical.setValue(vertical.getMaximum());

Tem várias formas de fazer a barra ir aos poucos. Você pode ir a menos do que maximum, você pode colocar uma thread para ser ativada de tempos em tempos, ou você pode usar um evento para mover sua barra.

O importante é saber movimenta-la!

[quote=ViniGodoy]Você pode alterar a barra ajustando os valores mínimo, máximo e atual da barra. Não tem segredo.

Nesse exemplo, coloco a barra na última posição de um JScrollPane chamado scrlPane:

JScrollBar vertical = scrlPane.getVerticalScrollBar(); vertical.setValue(vertical.getMaximum());

Tem várias formas de fazer a barra ir aos poucos. Você pode ir a menos do que maximum, você pode colocar uma thread para ser ativada de tempos em tempos, ou você pode usar um evento para mover sua barra.

O importante é saber movimenta-la![/quote]

Cara, valeu pela resposta ja ajudou mas, eu vou tentar explicar o motivo da barra de rolagem automatica, fiz um programa que armazena cifras de violao, sendo que a cifra aparece em um textArea dentro de um Scrollpane, sendo a musica maior que o textArea, vc teria que descer a barra na mao, ouseja parar de tocar a musica para poder visualizar o resto dela,eu queria uma barra que rolasse de ± 1 em 1 segundo.

Pensei mais ou menos assim:

        this.cifraString = jtaCifra.getText();
        int i=0;
        while ( this.cifraString.indexOf(i) &lt this.cifraString.length() ){
            jtaCifra.setCaretPosition( i );
            i++;
        }

o problema deste trecho de codigo e que a barra desce muito rapido, nao dando pra ver ela descer aos poucos, ai pensei se dentro do while eu colocar algo que pause por 1 segundo provavelmente funcione, testei isso:

        this.cifraString = jtaCifra.getText();
        while ( this.cifraString.indexOf(i) &lt this.cifraString.length() ){
            jtaCifra.setCaretPosition( i );
            i++;
            wait();
        }

mas deu erro dizendo que eu nao sou o dono da thread, sendo que eu nunca programei usando thread, ja li na net sobre isso mas nada que me ajudasse muito.
Outra solucao que eu pensei foi, ocupar atraves de processamento , ou seja, poderia fazer dois lacos "for"um dentro de outro de 10000 posicoes cada funcionou, mas so de vez em quando, na maioria das vezes ele trava, essa nao seria a solucao ideal, e nem a quero como solucao definitiva.

por isso, pergunto,
alguma outra solucao?
como eu faria isso usando thread?

realmente nao sei como fazer, ja esgotei minha paciencia procurando respostas nas mais diversas linguas, e nao encontrei muita coisa

sendo assim fica no ar esse problema para que algum safo em java possa me ajudar!!!

[]`s

Luiz Claudio
Obs:Mensagem nao acentuada!!!bug teclado!

Tente usar um timer.

http://java.sun.com/docs/books/tutorial/uiswing/misc/timer.html

Valeu cara consegui, fiz uma combinação usando timer, saca só:

[code]private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
speed = Double.parseDouble(jTextField1.getText())*1000;
timer = new Timer();
timer.schedule(new RemindTask(), 0, (int)speed);
}

class RemindTask extends TimerTask {
    int i = 0;
    JScrollBar vertical = jScrollPane1.getVerticalScrollBar();
    public void run() {
        if ( i < vertical.getMaximum() ){
            vertical.setValue(i);
            i++;
        } else {
            timer.cancel(); 
        }          
    }
}[/code]

[]`s
lcm

Legal, parabéns. :slight_smile:

Oi pessoal!
Eu fiz um programa pra consultar no banco de dados e depois imprimir em uma tabela!
O problema eh que sao 12 colunas e mas de 3 mil linhas, bom para visualizar as linhas naum foi preciso criar uma barra de rolagem porque ela aparece quando a tabela eh preenchida mas, para as colunas naum eu tenho que criar uma barra de rolagem na parte de baixo da minha tabela para pode visualizar melhor os registros!
Eu tentei fazer assim

[code]table = new JTable();
table.setModel(model);

    table.setAutoscrolls(true);[/code]

mas naum apareceu nada, como eu vi o topico de vcs pensem que podiam me ajudar vcs sabem me dizer como que eu faco pra ciar uma barra de rolagem na minha tabela?
So ta faltando isso no meu programa!
Me ajudem por favor!
bjokas :oops:

:idea:Maravilhosa!

É o meu primeiro post meu aqui :lol:

Bom gente, tenho visto por aí alguns sites com músicas cifradas e ainda a opção do usuário utilizar barra de rolagem automática, com a opção também de escolher a velocidade para a página rolar lenta ou rapidamente, conforme a escolha do usuário e / ou andamento usado pelo músico para executá-la enquanto a ler (partitura ou cifras ou tablaturas, etc).

Acho interessantíssimo o referido recurso e gostaria de utilizá-lo em um notebook com as letras de músicas cifradas inseridas, pois será melhor utilizá-lo do que as pastas contendo folhas impresssas do repertório de musicas cifradas. Então, no palco, é preferível o notebook às pastas, pois de fato, é mesmo chatérrimo levarmos aquelas pastas pesadíssimas que colocamos sobre as frágeis estantes, e o pior, ficar folheando à procura das múscias rsrss.

Friso que, os tais recursos são interessantes sim, mas gostaria de expor também que, o melhor mesmo é, que, no caso em questão, tenhamos as canções, músicas, partituras, letras, etc, todas bem gravadas na ‘cachola’ para executá-las (pois tira o clima ficar lendo, além de não ser profisisonal), mas às vezes somos surpreendidos com pedidos de algumas destas que não a treinamos, mas não tememos encará-las a partir da melodia que conhecemos para executá-las de ouvido, ao vivo e em cores (na tora rsrss)… e até encaramos uma execução ‘à primeira vista’ a partir de uma partitura (o que pode ser ainda mais temerário e arriscado in live rsrsrs). Enfim, ensaios são extremamente essenciais para uma boa performance em palcos.

Contudo, qualquer ajuda é muito importante pra mim que pretendo experimentar o tal recurso! Gostaria que retornassem a este tópico específico para nos informar como tem sido a experiência em usar este recurso e se vocês vêm se dando bem com o mesmo?

Obrigado e sucesso a todos! :wink:

cara, o programa funcionou, a base de dados das musicas estava em uma pasta com varios txt’s, o programa abria a musica selecionada e quando vc apertasse “PLAY”, a barra comaçava a rolar, no programa eu especifiquei um espaço onde vc poderia colocar de 1 à 10 que era o tempo da rolagem, o problema foi resolvido conforme dito neste mesmo post acima!!!

[]'s
Lcm

[amigo, to precisando muito de um programa desse que vc fez, tambem sou musico e to cansado de carregar aquele livro de repertorio pesado e antigo. Só tem um detalhe não entendo nada de programação, por isso, tenho que comprar, vamos fazer negocio no programa aee!

guerreiropm,

Ressuscitaste o tópico de 2009, :D. Cara não tenho mais o software, quer dizer, devo ter mas não sei onde, vou dar um procurada, mas lembro que não foi difícil de fazer!

Pessoal, não sou programador de coisa nenhuma.
1- não acho, nunca achei que tocar no palco, seguindo uma leitura na pasta, seja anti-profissional. Anti-profissional é a gente ter uns brancos na hora da apresentação e errar letras ou acordes.

2- gosto de leituras, baixei alguns e-books e descobri depois de noites e noites de pesquisa, que nós podemos usar o Adobe PDF reader para fazer a leitura em rolagem automática.

3 - testei e testei…

4 - você abre o texto no Adobe Reader e clica nas teclas ctrl + shift + h, e já começa a rolagem…
depois vc digita o numero 1 e pronto…já está no mínimo…

5 - vai colocando a sua velocidade ideal digitando 2 ou 3 ou 4 ou 5… e por aí vai.

6 - se servir para alguém, me conte, será muito bom saber que ajudei alguém na net.
carlosnaidell@bol.com.br