繁体   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