【问题标题】:Vertical scrollbar setValue always sets it to 90垂直滚动条 setValue 始终将其设置为 90
【发布时间】:2014-10-20 15:26:15
【问题描述】:

我正在保存两个滚动条的状态并用这两种方法加载它:

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。

控制台:
已保存:185,882
应加载:185,882
已加载:185,90

在论坛中找到一个技巧来创建一个新的 Runnable 方法并开始它

SwingUtilities.invokeLater(doScroll);

但没有成功。

我想知道我做错了什么......

【问题讨论】:

  • 只是碰碰运气,你的minimummaximum - visibleAmount是怎么设置的?
  • 目前我没有这个项目。我会在星期一早上检查它。
  • 最大值和最小值设置为正确的数量。我的窗户大约 2000 年。

标签: java scrollbar jscrollpane setvalue


【解决方案1】:

我必须先更新我的 contentPane。然后垂直滚动条更新为正确的值。不知道为什么它与水平滚动条一起使用...

之前:

loadScrollPosition();  
contentPane.updateUI();

之后

contentPane.updateUI();
loadScrollPosition();

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2011-09-15
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多