JTextAreas pueden mostrar grandes cantidades de texto de varias líneas. Cuando se inserta en un JScrollPane , JTextAreas mostrará una barra de desplazamiento para que el usuario pueda ver los datos que no caben en el área de visualización del componente. Usted puede programar su JScrollPane para vacilar y luego desplácese automáticamente con un lazo simple y un control básico hilo. Puede personalizar la cantidad de tiempo que su programa duda y la rapidez con que se desplaza . Instrucciones
1
Crear una nueva JScrollPane y añadir su JTextArea a la misma con el siguiente código:
JScrollPane scrollPane javax.swing.JScrollPane = new (); scrollPane.setViewportView ( textArea ) ;
Change " textArea " para el nombre de su JTextArea . Cambie la línea de código en su programa en el que se agrega el JTextArea a su objeto primario para agregar el objeto JScrollPane llamado " scrollPane " en su lugar .
2
Crear tres variables enteras para almacenar el tiempo de vacilación en segundos antes de la autoscrolls JTextArea , el tiempo de retardo en segundos entre cada desplazamiento y el número de líneas de la JTextArea debe mover cada vez que se autoscrolls . Utilice el siguiente código :
int hesitationTime = 5 ; int delayTime = 1 ; scrollIncrement int = 10 ;
3
Crear un nuevo Try ... Catch para capturar BadLocationExceptions y InterruptedExceptions con el siguiente código :
try {
} catch ( BadLocationException ex) { System.out.println ( " lugar de desplazamiento no válido" ) ;} catch ( InterruptedException ex) { System.out.println ( "El hilo interrumpido" ) ;}
4
Agregue el código siguiente después de un paréntesis abierto en la declaración Trate de hacer que el programa espere durante un tiempo determinado antes de comenzar a desplazarse el JTextArea :
Thread.sleep ( hesitationTime * 1000 ) ;
5
Escriba el siguiente bucle inmediatamente por debajo de la línea de código anterior para desplazarse por el área de texto a intervalos especificados :
for (int i = 0 ; i < textArea.getLineCount (); i + = scrollIncrement ) { Thread.sleep ( delayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( i ) - 1 ) ; }
6
Desplácese hasta el final del JTextArea . Agregar esta línea de código después del bucle for :
Thread.sleep ( delayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( textArea.getLineCount () - 1 ));