Я новичок в Java, У меня есть текстовое поле, и я установил только вертикальную полосу прокрутки для этого текстового поля. Я добавляю данные для каждой 1 минуты в текстовое поле, проблема в том, что когда новые данные добавляются в полосу прокрутки текстового поля, перемещаются вверх. Чтобы увидеть новые данные, каждый раз, когда у меня Чтобы перетащить полосу прокрутки, это не требование. Я хочу, чтобы полоса прокрутки не двигалась вверх, она должна перемещаться вниз, как я могу это сделать? пожалуйста, помогите мне.
Спасибо за ответ




Попробуйте установить позицию каретки в последнюю позицию каждый раз, когда вы добавляете:
textArea.setCaretLocation(textArea.getText().length());
Примерно так должно работать:
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());
}
});
Таким образом, он будет полностью автоматизирован.
Ты можешь сделать
JTextArea textArea = new JTextArea();
DefaultCaret caret = (DefaultCaret)textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
а затем используйте добавить, как вы это делаете сейчас.
Я предполагаю, что это также полностью ограничит прокрутку, что может быть нежелательно.