强制JScrollPane按(X)像素滚动

时间:2013-11-20 22:11:40

标签: java swing user-interface jscrollpane

我有一个JScrollPane scroller,我想让它垂直或水平移动指定数量的像素。

具体来说,我正在制作一个基于图块的游戏,其中图块面板包裹在一个JScrollPane中,其滚动条对用户隐藏。我需要代码来调整滚动,这样每次我在tile面板中调用我的movePlayer()方法时,滚动条会自动移动一个tile的长度。

到目前为止,我的大多数搜索都只在javascript中生成scrollBy的结果。

有没有办法以编程方式强制栏在Java中滚动?

1 个答案:

答案 0 :(得分:2)

查看JViewport#getViewRectJViewport#getViewPositionJViewport#setViewPosition

这些将允许调整JScrollPane的视口位置。

您还可以查看JComponent#scrollRectToVisible,如果它位于滚动窗格/视口内,则可以询问组件的给定区域是否可见

您可以查看Moving a view port over a larger image; JLablel+JScrollPane例如