Swing, VerticalScrollBar - Java
Формулировка задачи:
public void resetScrollPosition() { mainTextContainer.getVerticalScrollBar().setValue(mainTextContainer.getVerticalScrollBar().getMaximum()); }
mainTextContainer - это не JPanel, а JScrollPane.
repaint() и validate() не помогают.
Когда добавил сон перед методом resetScroll на 5 миллисекунд и добавил repaint() и validate(), то стало хотя бы на входящие сообщения реагировать нормально(вероятно из-за того, что они выводятся другим потоком), однако при исходящих всё равно на строку выше показывает.
Похоже на какие-то глюки. Будто текст добавляется позже установки скролла, однако в коде всё наоборот.
Решение задачи: «Swing, VerticalScrollBar»
textual
Листинг программы
private void resetScrollPosition() { mainTextContainer.getVerticalScrollBar().setValue(mainTextContainer.getVerticalScrollBar().getMaximum()); mainTextContainer.validate(); } public void addMessage(String message) { mainTextField.append("\n" + message); resetScrollPosition(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д