Come ottenere un JTextArea di esitare e scorrere i dati in Java

October 25

JTextAreas in grado di visualizzare grandi quantità di testo su più righe. Quando incorporato in un JScrollPane, JTextAreas visualizzerà una barra di scorrimento per consentire all'utente di visualizzare i dati che non rientrano nell'area di visualizzazione del componente. È possibile programmare l'JScrollPane esitare e quindi scorrere automaticamente con un semplice ciclo e controllo filo semplice. È possibile personalizzare la quantità di tempo che il programma esita e quanto velocemente scorre.

istruzione

1 Creare un nuovo JScrollPane e aggiungere il JTextArea ad esso con il seguente codice:

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

Change "textArea" per il nome del JTextArea. Modificare la riga di codice nel vostro programma in cui si aggiunge il JTextArea al suo oggetto padre per aggiungere l'oggetto JScrollPane chiamato "ScrollPane", invece.

2 Creare tre variabili intere per memorizzare l'ora di esitazione in secondi prima che il autoscrolls JTextArea, il tempo di ritardo in secondi tra ogni scorrimento e il numero di linee della JTextArea dovrebbe muoversi ogni volta che autoscrolls. Utilizzare il seguente codice:

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

3 Creare una nuova istruzione try ... catch per catturare BadLocationExceptions e InterruptedExceptions con il seguente codice:

provare {

} Catch (BadLocationException ex) {

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

} Catch (InterruptedException ex) {

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

}

4 Aggiungere il seguente codice dopo la parentesi di apertura nell'istruzione Prova a causare il programma di aspettare per un tempo determinato prima di iniziare a scorrere la JTextArea:

Thread.sleep (hesitationTime * 1000);

5 Inserire il seguente ciclo immediatamente al di sotto della riga precedente di codice per scorrere l'area di testo a intervalli specifici:

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

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

}

6 Scorrere fino alla fine del JTextArea. Aggiungere questa riga di codice dopo il ciclo for:

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