我正在尝试从 GURPS 创建一个字符表,它基本上是这样的:
/-Main Panel--------\
|/-Panel-----------\|
|\-----------------/|
|/-Another Panel---\|
|| Contents ||
|\-----------------/|
\-------------------/
我需要它垂直滚动,但水平调整大小。我使用 BoxLayout 垂直排列面板,这是一种个人布局,可以完全适应容器中的内容,并尝试使用:
JScrollPane scrollPane = new JScrollPane(mainPanel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
但它没有按照我想要的方式工作,它不会改变其内容的水平尺寸。有人有什么想法吗?
最佳答案
默认情况下,添加到 JScrollPane 的组件以其首选尺寸()显示,并且当首选尺寸大于滚动 Pane 的尺寸时,会出现滚动条。
如果您想强制面板水平扩展/收缩以填充滚动 Pane 的宽度,那么您需要为面板实现 Scrollable
接口(interface)。
所以基本上您需要实现 getScrollableTracksViewportWidth()
方法来返回 “true”
。现在主面板将调整大小以填充滚动 Pane 的宽度。
或者您可以查看Scrollable Panel,而不是自己实现Scrollable
接口(interface)的所有方法。它为您提供这种支持。
关于Java - 仅垂直滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39195606/