Tecnología

Inicio

Cómo conseguir un JTextArea para vacilar y desplazar los datos en Java

JTextAreas pueden mostrar grandes cantidades de texto de varias líneas. Cuando se incrusta en un JScrollPane, JTextAreas se mostrará una barra de desplazamiento para permitir al usuario ver los datos que no encajan en el área de visualización del componente. Puede programar el JScrollPane para vacilar y luego desplazarse de forma automática con un lazo simple y control básico hilo. Se puede personalizar la cantidad de tiempo que vacila su programa y la rapidez con que se desplaza.

Instrucciones

1 Crear un nuevo JScrollPane y añadir su JTextArea a ella con el siguiente código:

JScrollPane scrollPane = new javax.swing.JScrollPane ();
scrollPane.setViewportView (textArea);

Cambio "textArea" para el nombre de su JTextArea. Cambie la línea de código en su programa en el que se agrega a su JTextArea a su objeto padre para agregar el objeto JScrollPane llamado "scrollPane" en su lugar.

2 Crear tres variables enteras para almacenar el tiempo de vacilación en cuestión de segundos antes de que los autoscrolls JTextArea, el tiempo de retardo en segundos entre cada desplazamiento y el número de líneas de la JTextArea debe moverse cada vez que autoscrolls. Utilice el siguiente código:

int hesitationTime = 5;
int delayTime = 1;
int scrollIncrement = 10;

3 Crear una nueva instrucción Try ... Catch para detectar BadLocationExceptions y InterruptedExceptions con el siguiente código:

tratar {

} Catch (BadLocationException ex) {

System.out.println("Invalid scroll location");

} Catch (InterruptedException ex) {

System.out.println("Thread interrupted");

}

4 Agregue el código siguiente después del paréntesis de apertura de la cuenta de Trata de hacer que el programa que esperar por un tiempo determinado antes de comenzar a desplazarse por la JTextArea:

Thread.sleep (hesitationTime * 1000);

5 Introduzca el siguiente bucle inmediatamente por debajo de la línea de código anterior para desplazarse por el área de texto en los intervalos especificados:

for (int i = 0; i <textArea.getLineCount (); i + = scrollIncrement) {

Thread.sleep(delayTime * 1000);
textArea.setCaretPosition(textArea.getLineEndOffset(i) - 1);

}

6 Desplazarse hasta el final de la JTextArea. Añadir esta línea de código después de que el bucle For:

Thread.sleep (delayTime * 1000);
textArea.setCaretPosition (textArea.getLineEndOffset (textArea.getLineCount () - 1));