每 50 像素滚动条滚动



我正在开发一个包含滚动条的程序。在程序中,我得到了一个 500px 的可滚动字段,我希望滚动条每 50px 滚动一次。所以我得到了10页。我不希望能够显示页面的 50%,我只希望一次只能显示 1 页。那么如何更改滚动尺寸呢?

还是有更好的方法来实现这一目标?

迎接提前感谢布拉姆

您可以使可滚动字段实现 Scrollable 接口,该接口声明滚动字段将用于决定其滚动距离的两种方法,getScrollableUnitIncrement(滚轮,单击滚动箭头)和getScrollableBlockIncrement(单击滚动条的轨迹)。

如果你真的只希望它是 50,你可以使用

jScrollPane.getVerticalScrollBar().setUnitIncrement(50);
jScrollPane.getVerticalScrollBar().setBlockIncrement(50);

但是,如果用户随后拖动滚动条直到显示半页(我认为这种行为不容易改变),滚动仍然会跳跃 50 像素并显示下一页的一半......如果实现 Scrollable ,则可以根据当前可见的内容来滚动数量。

和你一起试试这个JScrollPane

scrollPane.getVerticalScrollBar().setUnitIncrement(50);

当您使用JScrollPane按钮向上/向下滚动时,这会有所帮助,但您可以通过用鼠标移动旋钮来显示一半的页面。

作为替代方案,我可以建议使用AdjustmentListener观察旋钮位置并手动移动滚动窗格值。

scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener()
    {
        public void adjustmentValueChanged(AdjustmentEvent e)
        {
            scrollPane.getVerticalScrollBar().setValue(e.getValue() / 50 * 50);
        }
    });

但我认为这不是一个好主意。也许有人会提出更好的方法。

相关内容

  • 没有找到相关文章