JTextAreas peuvent afficher de grandes quantités de texte sur plusieurs lignes . Lorsqu'il est incorporé dans un JScrollPane , JTextAreas affiche une barre de défilement pour permettre à l'utilisateur de visualiser des données qui ne correspondent pas à la zone d'affichage du composant. Vous pouvez programmer votre JScrollPane hésiter , puis faire défiler automatiquement avec une simple boucle et le contrôle du fil de base. Vous pouvez personnaliser la quantité de temps que votre programme hésite et à quelle vitesse il défile . Instructions
1
Créer un nouveau JScrollPane et ajoutez votre JTextArea à elle avec le code suivant :
JScrollPane scrollpane = new javax.swing.JScrollPane (); scrollPane.setViewportView ( textArea ) ;
changement » textArea " pour le nom de votre JTextArea . Modifiez la ligne de code dans votre programme vous permet d'ajouter votre JTextArea à son objet parent pour ajouter l'objet JScrollPane appelé " scrollpane " à la place.
2
créer trois variables entières pour stocker le temps de hésitation en quelques secondes avant la autoscrolls JTextArea , le temps de retard en secondes entre chaque rouleau et le nombre de lignes du JTextArea doit se déplacer à chaque fois qu'il autoscrolls . Utilisez le code suivant :
int hesitationTime = 5; int delayTime = 1; int scrollIncrement = 10;
3
Créer une nouvelle instruction Try ... Catch pour attraper BadLocationExceptions et InterruptedExceptions avec le code suivant :
try {
} catch ( BadLocationException ex) { System.out.println ("location Invalid scroll ");} catch ( InterruptedException ex) { System.out.println ( "Thread interrompu ");}
4
Ajoutez le code suivant après la parenthèse d'ouverture dans la déclaration Essayez de provoquer le programme d'attendre pendant un certain temps avant de commencer à défiler le JTextArea :
Thread.sleep ( hesitationTime * 1000 ) ;
5
entrer dans la boucle suivante immédiatement en dessous de la ligne de code précédente pour faire défiler la zone de texte à des intervalles spécifiés :
for (int i = 0; i < textArea.getLineCount (); i + = scrollIncrement ) { Thread.sleep ( delayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( i) - 1); }
6
Faites défiler jusqu'à la fin de la JTextArea . Ajoutez la ligne de code après la boucle For :
Thread.sleep ( delayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( textArea.getLineCount () - 1)) ;