我有一个JScrollPane scroller
,我想让它垂直或水平移动指定数量的像素。
具体来说,我正在制作一个基于图块的游戏,其中图块面板包裹在一个JScrollPane中,其滚动条对用户隐藏。我需要代码来调整滚动,这样每次我在tile面板中调用我的movePlayer()方法时,滚动条会自动移动一个tile的长度。
到目前为止,我的大多数搜索都只在javascript中生成scrollBy
的结果。
有没有办法以编程方式强制栏在Java中滚动?
答案 0 :(得分:2)
查看JViewport#getViewRect
,JViewport#getViewPosition
和JViewport#setViewPosition
这些将允许调整JScrollPane
的视口位置。
您还可以查看JComponent#scrollRectToVisible
,如果它位于滚动窗格/视口内,则可以询问组件的给定区域是否可见
您可以查看Moving a view port over a larger image; JLablel+JScrollPane例如