JTextAreas kan vise store mængder tekst på tværs af flere linjer. Når indlejret i en JScrollPane vil JTextAreas vise en scroll bar for at gøre det muligt for brugeren at se data, der ikke passer i komponenten display område. Du kan programmere JScrollPane at tøve og derefter automatisk rulle med en simpel løkke og grundlæggende tråd kontrol. Du kan tilpasse den mængde af tid, at dit program tøver , og hvor hurtigt den ruller . Instruktioner
1
Opret en ny JScrollPane og tilføje dine JTextArea til det med følgende kode : Hej
JScrollPane scrollPane = new javax.swing.JScrollPane (); scrollPane.setViewportView ( textarea ) ;
Change " textarea " til navnet på din JTextArea . Skift linje kode i dit program , hvor du tilføjer din JTextArea til sit moderselskab objekt for at tilføje JScrollPane objekt kaldet " scrollPane " i stedet.
2
Opret tre heltalsvariabler at gemme tøven i sekunder før JTextArea autoscrolls den JTextArea forsinkelsen i sekunder mellem hver rulle , og antallet af linjer skulle flytte , hver gang det autoscrolls . Brug følgende kode : Hej
int hesitationTime = 5; int delay = 1; int scrollIncrement = 10;
3
Opret en ny Prøv ... Catch erklæring til fange BadLocationExceptions og InterruptedExceptions med følgende kode : Hej
try {
} catch ( BadLocationException ex ) { System.out.println ( "Ugyldig scroll location" );} catch ( InterruptedException ex ) { System.out.println ( "afbrød tråd" );}
4
Føj følgende kode efter åbningen beslaget i Prøv erklæring til få programmet til at vente på en bestemt tid , før du begynder at rulle den JTextArea : Hej
Thread.sleep ( hesitationTime * 1000),
5
Indtast følgende loop umiddelbart under den foregående linje kode til at rulle gennem teksten området med bestemte intervaller: < br >
for (int i = 0; i < textArea.getLineCount (); i + = scrollIncrement ) { Thread.sleep ( delay * 1000), textArea.setCaretPosition ( textArea.getLineEndOffset ( i) - 1) ; }
6
Rul til den bitre ende af JTextArea . Tilføj denne linje kode efter For løkken : Hej
Thread.sleep ( delay * 1000), textArea.setCaretPosition ( textArea.getLineEndOffset ( textArea.getLineCount ( ) - 1 )),
< br >