JTextAreas kan vise store mengder tekst på flere linjer . Når innebygd i en JScrollPane , vil JTextAreas vise et rullefelt for å tillate brukeren å vise data som ikke passer i komponentens displayet . Du kan programmere JScrollPane å nøle og deretter automatisk bla med en enkel sløyfe og grunnleggende tråd kontroll. Du kan tilpasse mengden tid at programmet nøler og hvor raskt den ruller . Instruksjoner
en
Opprett en ny JScrollPane og legge til JTextArea til det med følgende kode :
JScrollPane scrollPane = new javax.swing.JScrollPane (); scrollPane.setViewportView ( textarea ) ;
Change " textarea " til navnet på JTextArea din . Endre linje med kode i programmet der du legger din JTextArea til sin overordnede objektet for å legge til JScrollPane objekt kalt " scrollPane " i stedet .
2
Lag tre heltallsvariabler å lagre nøling i sekunder før JTextArea autoscrolls , forsinkelsen i sekunder mellom hver rull og antall linjer JTextArea skal bevege seg hver gang det autoscrolls . Bruk følgende kode :
int hesitationTime = 5; int delayTime = 1; int scrollIncrement = 10;
3
Opprett en ny prøve ... Catch uttalelse til fange BadLocationExceptions og InterruptedExceptions med følgende kode :
try {
} catch ( BadLocationException ex ) { System.out.println ( " Ugyldig bla location" ); } catch ( InterruptedException ex ) { System.out.println ( " Tråd avbrutt "); }
4
Legg til følgende kode etter åpningen braketten i Prøv uttalelse til føre til at programmet vente for en bestemt tid før du begynner å rulle den JTextArea : en
Thread.sleep ( hesitationTime * 1000 ) ;
5
Skriv inn følgende sløyfe rett under den forrige linje med kode for å bla gjennom teksten området ved gitte intervaller :
for ( int i = 0 ; i < textArea.getLineCount (); i + = scrollIncrement ) { Thread.sleep ( delayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( i) - 1 ); }
6
Bla til slutten av JTextArea . Legg denne linjen med kode etter For bue:
Thread.sleep ( delayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( textArea.getLineCount ( ) - 1 ));