JTextAreas pode exibir grandes quantidades de texto em várias linhas. Quando incorporado em um JScrollPane , JTextAreas exibirá uma barra de rolagem para permitir que o usuário visualize os dados que não se encaixam na área de exibição do componente. Você pode programar seu JScrollPane hesitar e role automaticamente com um loop simples e controle básico fio . Você pode personalizar a quantidade de tempo que o seu programa hesita ea rapidez com que rola . Instruções
1
Criar um novo JScrollPane e adicionar seu JTextArea a ele com o seguinte código:
JScrollPane scrollpane = new javax.swing.JScrollPane (); scrollPane.setViewportView ( textArea ) ;
Change " textArea " para o nome do seu JTextArea . Altere a linha de código em seu programa onde você adicionar seu JTextArea para seu objeto pai para adicionar o objeto JScrollPane chamado " scrollpane " em vez .
2
Crie três variáveis inteiras para armazenar o tempo de hesitação em segundos antes das autoscrolls JTextArea , o tempo de atraso em segundos entre cada rolo e o número de linhas do JTextArea deve mover cada vez que autoscrolls . Use o seguinte código :
int hesitationTime = 5; int delayTime = 1; int scrollIncrement = 10;
3
Criar um novo Try ... Catch demonstrativo para pegar BadLocationExceptions e InterruptedExceptions com o seguinte código :
try {
} catch ( BadLocationException ex) { System.out.println (" localização inválido rolagem ");} catch ( InterruptedException ex) { System.out.println ( "Thread interrompida ");}
4
Adicione o seguinte código após o colchete de abertura na demonstração Tente fazer com que o programa de esperar por um período de tempo especificado antes de começar a rolar o JTextArea :
Thread.sleep ( hesitationTime * 1000 );
5
Digite o seguinte laço logo abaixo da linha de código anterior para percorrer a área de texto em intervalos específicos :
for (int i = 0; i < textArea.getLineCount (); i + = scrollIncrement ) { Thread.sleep ( delayTime * 1000 ); textArea.setCaretPosition ( textArea.getLineEndOffset (i) - 1); }
6
Vá até o final do JTextArea . Adicione esta linha de código após o loop For :
Thread.sleep ( delayTime * 1000 ); textArea.setCaretPosition ( textArea.getLineEndOffset ( textArea.getLineCount () - 1) );