[英]Java - Setting position of jScrollBar
我在JScrollPane中有一個JTable,該表偶爾會獲取新的數據行。 最終,數據行多於一次顯示的行,因此ScrollPane啟動了。我希望每次添加新數據時,滾動窗格都跳到底部(達到最大值),所以我寫了這就是在添加新行后立即調用:
jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
它工作得很好,但是有一個問題-它沒有滾動到完整的底部。 它總是留下表格的一行,您需要手動向下滾動才能到達整個底部。
我的懷疑是,只有在方法結束后才以某種方式添加新的數據行(按下JButton並激活一種actionPerformed方法后將其激活)。
如何解決這個問題?
您需要使用SwingUtilities.invokeLater在當前處理事件結束時將其排隊; 它看起來像這樣:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
jScrollPane1.getVerticalScrollBar().setValue(jScrollPane1.getVerticalScrollBar().getMaximum());
}
}
);
否則將在當前事件期間運行,並且將在任何實際更新之前發生。
記住讓它們成為變量final以將它們傳遞給匿名內部類
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.