Java - 仅垂直滚动
Java - Only Vertical Scroll
我正在尝试从 GURPS 创建一个角色 Sheet,它基本上是这样的:
/-Main Panel--------\
|/-Panel-----------\|
|\-----------------/|
|/-Another Panel---\|
|| Contents ||
|\-----------------/|
\-------------------/
而且我需要它垂直滚动,但水平调整大小。我正在使用 BoxLayout 垂直排列面板,这是一种完全适合容器中内容的个人布局,并尝试使用:
JScrollPane scrollPane = new JScrollPane(mainPanel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
但它并没有像我想要的那样工作,它没有改变内容的水平大小。有人有什么想法吗?
默认情况下,添加到 JScrollPane 的组件以其 preferredSize() 显示,并且当首选大小大于滚动窗格大小时出现滚动条。
如果您想强制面板水平 expand/shrink 以填充滚动窗格的宽度,那么您需要为您的面板实现 Scrollable
接口。
所以基本上您需要将 getScrollableTracksViewportWidth()
方法实现为 return “true”
。现在主面板将调整大小以填充滚动窗格的宽度。
或者您可以查看 Scrollable Panel 为您提供此支持,而不是自己实现 Scrollable
接口的所有方法。
我正在尝试从 GURPS 创建一个角色 Sheet,它基本上是这样的:
/-Main Panel--------\
|/-Panel-----------\|
|\-----------------/|
|/-Another Panel---\|
|| Contents ||
|\-----------------/|
\-------------------/
而且我需要它垂直滚动,但水平调整大小。我正在使用 BoxLayout 垂直排列面板,这是一种完全适合容器中内容的个人布局,并尝试使用:
JScrollPane scrollPane = new JScrollPane(mainPanel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
但它并没有像我想要的那样工作,它没有改变内容的水平大小。有人有什么想法吗?
默认情况下,添加到 JScrollPane 的组件以其 preferredSize() 显示,并且当首选大小大于滚动窗格大小时出现滚动条。
如果您想强制面板水平 expand/shrink 以填充滚动窗格的宽度,那么您需要为您的面板实现 Scrollable
接口。
所以基本上您需要将 getScrollableTracksViewportWidth()
方法实现为 return “true”
。现在主面板将调整大小以填充滚动窗格的宽度。
或者您可以查看 Scrollable Panel 为您提供此支持,而不是自己实现 Scrollable
接口的所有方法。