Установка полосы прокрутки на JScrollPane

6
задан twolfe18 22 July 2009 в 15:46
поделиться

2 ответа

Вы пробовали использовать invokeLater?

final JScrollPane scroll = new JScrollPane(text);
javax.swing.SwingUtilities.invokeLater(new Runnable() {
   public void run() { 
       scroll.getVerticalScrollBar().setValue(0);
   }
});

Если это не сработает, копаться в представлениях изображений довольно сложно, поэтому следующим шагом будет отслеживание того, почему меняется полоса прокрутки:

scroll.setVerticalScrollbar(new JScrollBar() {
    public void setValue(int value) {
        new Exception().printStackTrace();
        super.setValue(value);
    } 
});

Вы также можете использовать отладчик в методе setValue () вместо простой печати трассировки стека.

20
ответ дан 8 December 2019 в 05:56
поделиться

Ваше приложение случайно не однопоточное? Если это так, вы можете запросить список запущенных потоков и получить уведомление, когда они закончатся, а затем установить значение полосы прокрутки. Это вариант?

Или вы можете предоставить ImageObserver для каждого загруженного изображения и установить положение полосы прокрутки, когда все изображения загружены?

0
ответ дан 8 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: