JTextAreas kunnen grote hoeveelheden tekst over meerdere regels weergegeven . Wanneer ingebed in een JScrollPane , zal JTextAreas een schuifbalk weergegeven zodat de gebruiker om gegevens die niet past in het weergavegebied van het onderdeel . U kunt uw JScrollPane programmeren te aarzelen en dan automatisch scroll met een eenvoudige lus en basic draad controle . U kunt de hoeveelheid tijd die uw programma aarzelt en hoe snel het rollen aan te passen . Instructies 1 Maak een nieuwe JScrollPane en voeg uw JTextArea om het met de volgende code : JScrollPane ScrollPane = new javax.swing.JScrollPane ( ) ; scrollPane.setViewportView ( textArea ) ; Change " textArea " om de naam van uw JTextArea . Verander de regel code in uw programma waar u uw JTextArea toe te voegen aan haar bovenliggend object aan de JScrollPane object genaamd " ScrollPane " in plaats toe te voegen . Kopen van 2 Maak drie integer variabelen om de aarzeling de tijd in seconden voordat de JTextArea autoscrolls , de vertragingstijd in seconden tussen elke rol en het aantal lijnen de JTextArea moet elke keer het autoscrolls verplaatsen . Gebruik de volgende code : int hesitationTime = 5 ; int DelayTime = 1 ; int scrollIncrement = 10 ; 3 Maak een nieuwe Try ... Catch statement te vangen BadLocationExceptions en InterruptedExceptions met de volgende code : try { } catch ( BadLocationException ex ) { System.out.println ( " Invalid scroll locatie " ) ; } catch ( InterruptedException ex ) { System.out.println ( " Thread onderbroken " ) ; } 4 Voeg de volgende code na de opening beugel in de Try verklaring aan het programma veroorzaken om te wachten op een bepaalde tijd alvorens te beginnen met scrollen de JTextArea : Thread.sleep ( hesitationTime * 1000 ) ; 5 Voer de volgende lus direct onder de vorige regel code op bepaalde tijdstippen door de tekst gebied om te scrollen : < br > for (int i = 0 ; i < textArea.getLineCount ( ) ; i + = scrollIncrement ) { Thread.sleep ( DelayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( i ) - 1 ) ; } 6 Scroll naar het einde van de JTextArea . Voeg deze regel code na de For-lus : Thread.sleep ( DelayTime * 1000 ) ; textArea.setCaretPosition ( textArea.getLineEndOffset ( textArea.getLineCount ( ) - 1 ) ) ; < br >
|