2008-12-16 6 views
0

je suis begginner en java, j'ai textarea et j'ai mis seulement scrollbar verticle à cette textarea.j'ajoute des données pour chaque 1 minute à textarea, le problème est quand de nouvelles données s'ajoute à la textarea barre de défilement va monter.Pour voir les nouvelles données, chaque fois que je dois faire glisser la barre de défilement, ce n'est pas le requirment.je veux que la barre de défilement ne devrait pas monter, il devrait descendre comment puis-je faire cela? plz aidez-moi.action de barre de défilement en java

merci pour la réponse

Répondre

1

Essayez de définir l'emplacement de caret à la dernière position à chaque fois que vous ajoutez:

textArea.setCaretLocation(textArea.getText().length()); 
1

Quelque chose comme cela devrait fonctionner:

JTextArea display= new JTextArea(); 
JScrollPane scroll =new JScrollPane(display); 

scroll.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){ 
    public void adjustmentValueChanged(AdjustmentEvent e){ 
     JTextArea textArea = (JTextArea)e.getSource(); 
     textArea.setCaretPosition(textArea.getDocument().getLength()); 
    } 
}); 

De cette façon, il sera pleinement automatique.

+0

J'imagine que ceci limitera complètement le défilement, ce qui pourrait ne pas être souhaitable. – Martijn

1

Vous pouvez faire

JTextArea textArea = new JTextArea(); 
DefaultCaret caret = (DefaultCaret)textArea.getCaret(); 
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE); 

puis utilisez append comme vous le faites actuellement.

+0

Merci d'avoir obtenu la sortie correcte pour votre deuxième réponse –

+0

Ok, je vais mettre à jour ma réponse pour ne garder que la deuxième partie. – Barth