JTextArea прокрутить вниз, только если текст добавлен
Я пытаюсь создатьJTextArea
который прокручивается вниз каждый раз, когда текст добавляется в эту текстовую область. В противном случае пользователь должен иметь возможность прокручивать верхнюю часть и видеть предыдущее сообщение. Я использовал этот код:
JTextArea terminalText = new JTextArea();
JPanel terminal = new JPanel();
terminal.setLayout(new BorderLayout());
add(terminal); //Adds the terminal to mother JPanel
//I added scrollbar to my JTextArea
JScrollPane scroll = new JScrollPane(terminalText);
terminal.add(scroll, BorderLayout.CENTER);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
scroll.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() {
public void adjustmentValueChanged(AdjustmentEvent e) {
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}});
Пока этот код, кажется, заставляет мою текстовую область прокручиваться к нижней частиterminalText
область текста каждый раз, когда я добавляю что-то кterminalText
с помощьюterminalText.append
.
Тем не менее, пользователь не может использовать полосу прокрутки для прокрутки вверх, чтобы увидеть предыдущее сообщение. Есть ли способ это исправить? Должен ли я использоватьDocumentListener
для достижения этой цели?