JTextArea com rolagem automática

6 respostas
H

Ei pessoal,
preciso fazer com que uma JTextArea role automaticamente
quando a aplicação jogar o texto nela. sei que tem um
método scrollToVisible, ou algo assim, que recebe um
Rectangle como parâmetro, e esse é o problema: O Rectangle!
as dimensões tudo bem q a altura vai ser a mesma da linha
e a largura nem faz diferença, mas como vou saber as
coordenadas do rectangle?
alguém já fez isso?
dicas são bem vindas… valeu!

6 Respostas

H
JTextArea txtArea = new JTextArea(5, 5);
        
        //txtaAbstract.setLineWrap( true ); //muda de linha automatico
        
        /*Adicione seu JTextArea num JScrollPane e deixe que ele tome conta dos scrolls para vc*/
        JScrollPane scroll = new JScrollPane(txtArea); 
        
        /*
        scroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
        scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );*/
        
        panel.add( scroll );

acho q seria isso.... :roll:

H

Funcionou não… vc usou isso e fez o efeito de rolagem automática?

E

Use o método setCaretPosition( areaTexto.getText().length() ); após adicionar o texto na jtextarea

H

Funcionou!
obrigado cara, valeu mesmo!

R
Hempx:
JTextArea txtArea = new JTextArea(5, 5);
        
        //txtaAbstract.setLineWrap( true ); //muda de linha automatico
        
        /*Adicione seu JTextArea num JScrollPane e deixe que ele tome conta dos scrolls para vc*/
        JScrollPane scroll = new JScrollPane(txtArea); 
        
        /*
        scroll.setHorizontalScrollBarPolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER );
        scroll.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS );*/
        
        panel.add( scroll );

acho q seria isso.... :roll:

achou errado, não funciona

V

E precisava responder um tópico de 2005 para dizer isso??? Note que o que funciona foi escrito logo depois.

Segue a classe que uso:
http://www.guj.com.br/java/88656-movimentar-jtable#474184

Criado 28 de maio de 2005
Ultima resposta 4 de ago. de 2013
Respostas 6
Participantes 5