2014-10-20 81 views
0

我挽救了兩個滾動條的狀態,並用這兩種方法加載它:垂直滾動條的setValue總是將它設置爲90

private void saveScrollPosition() { 
    scrollY = scrollPane.getVerticalScrollBar().getValue(); 
    scrollX = scrollPane.getHorizontalScrollBar().getValue(); 
    System.out.println("Saved: " + scrollX + "," + scrollY); 
} 

private void loadScrollPosition() { 
    scrollPane.getVerticalScrollBar().setValue(scrollY); 
    scrollPane.getHorizontalScrollBar().setValue(scrollX); 
    System.out.println("Should load: " + scrollX + "," + scrollY); 
    System.out.println("Loaded: " + scrollPane.getHorizontalScrollBar().getValue() + "," + scrollPane.getVerticalScrollBar().getValue()); 
} 

水平滾動條是做什麼是應該做的,但垂直的總是設置爲90

控制檯:
保存:185882
應該加載:185882
加載:185, 90

發現小費在一個論壇來創建一個新的Runnable方法與

SwingUtilities.invokeLater(doScroll); 

啓動它,但它沒有工作。

我在想我在做什麼錯...

+0

只是把它扔了機會,怎麼是你'minimum'和「最大 - visibleAmount」設置? – Narmer 2014-10-20 15:35:04

+0

目前沒有與我的項目。我會在星期一上午檢查它。 – codewing 2014-10-22 07:22:49

+0

最大和最小值設置爲正確的數量。 2000年左右我的窗戶。 – codewing 2014-10-27 10:02:25

回答

0

我必須先更新我的contentPane。然後垂直滾動條被更新爲正確的值。 IDK爲什麼它與水平滾動條工作...

前:

loadScrollPosition(); 
contentPane.updateUI(); 

contentPane.updateUI(); 
loadScrollPosition(); 

希望這有助於