Java JScrollbar每50像素滚动一次

Java JScrollbar每50像素滚动一次,java,swing,jscrollpane,jscrollbar,Java,Swing,Jscrollpane,Jscrollbar,我正在开发一个包含滚动条的程序。 在程序中,我得到了一个500px的可滚动字段,我希望滚动条每50px滚动一次。 所以我有10页。 我不想显示50%的页面,我只想一次显示一页。 那么如何更改滚动尺寸呢 还是有更好的方法来实现这一点 问候, 先谢谢你 Bram与您一起尝试JScrollPane scrollPane.getVerticalScrollBar().setUnitIncrement(50); 当您使用JScrollPane按钮向上/向下滚动时,这会有所帮助,但您可以通过用鼠标移动旋钮

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

还是有更好的方法来实现这一点

问候, 先谢谢你
Bram

与您一起尝试
JScrollPane

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

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

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

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

与您一起尝试
JScrollPane

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

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

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

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

您可以让可滚动字段实现
可滚动
界面,该界面声明了滚动字段用于决定滚动距离的两种方法,
getScrollableUnitIncrement
(滚动轮,单击滚动箭头)和
getScrollableBlockIncrement
(单击滚动条的轨迹)

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

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

但是,如果用户拖动滚动条直到显示半页(我认为这种行为不容易改变),滚动仍将跳转50像素并显示下一页的一半…如果您实现可滚动,您可以根据当前可见的内容确定滚动量。

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

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

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

但是,如果用户拖动滚动条直到显示半页(我认为这种行为不容易改变),滚动仍将跳转50像素,并显示下一页的一半…如果您实现可滚动的
,您可以根据当前可见的内容来确定滚动的数量。

Thx因为行为无法轻易改变,所以可以使用卡片布局并滚动卡片吗?我知道可以使用按钮那么这可以用滚动条来完成吗?@Bram从来没有亲自做过,但似乎是可能的。你不想使用滚动窗格,而是使用一个独立的
JScrollBar
,你可以用
AdjustmentListener
来收听。当听众收到通知时,找出合适的卡片并显示出来。你必须配置滚动条可以让它知道你有多少张卡,当然。Thx可以让它知道,因为行为不能那么容易改变。可以使用卡片布局并滚动卡片吗?我知道可以用按钮来改变卡片,所以可以用滚动条来完成吗?@Bram从来没有亲自做过,但似乎是可能的。你不会想要我们的e是一个滚动窗格,而不是一个独立的
JScrollBar
,您可以使用
AdjustmentListener
收听。当听众收到通知时,找出合适的卡片并显示出来。当然,您必须配置滚动条才能知道您有多少张卡片。