簡體   English   中英

Java-設置jScrollBar的位置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM