Я хотел бы автоматически прокручивать JScrollPane
при его обновлении. Мой JScrollPane содержит несколько панелей, которые я появлялся время от времени в зависимости от действий пользователя.
Проведены тесты
Все существующие решения относятся к JTextArea или JList. Приведенное ниже решение работает, но имеет проблему с переопределением всех действий пользователя (если мы вручную нажмем на ScrollBox, после этого он автоматически прокрутится вниз):
@Override
public void adjustmentValueChanged(AdjustmentEvent e){
e.getAdjustable().setValue(e.getAdjustable().getMaximum());
}
Я пробовал это решение:
private void addPanel(JPanel newPanel){
scrollPanel.add(newPanel);
scrollDown();
}
private void scrollDown(){
JScrollBar vertical = scroll.getVerticalScrollBar();
vertical.setValue(vertical.getMaximum());
}
Я вызываю его сразу после добавления JPanel в свой JScrollPane. Но прокручивает не до самого низа, а до того, что не очень... чисто.