我试图从GURPS创建一个角色表,它基本上是这样的:
/-Main Panel--------\
|/-Panel-----------\|
|\-----------------/|
|/-Another Panel---\|
|| Contents ||
|\-----------------/|
\-------------------/
我需要它垂直滚动,但要水平调整大小。我使用BoxLayout垂直排列面板,个人布局完全适合容器中的内容,并尝试使用:
JScrollPane scrollPane = new JScrollPane(mainPanel);
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
但它没有按照我想要的方式工作,它并没有改变它内容的横向大小。有没有人有任何想法?
答案 0 :(得分:2)
默认情况下,添加到JScrollPane的组件显示在preferredSize()上,当首选大小大于滚动窗格的大小时,会显示滚动条。
如果要强制面板水平展开/收缩以填充滚动窗格的宽度,则需要为面板实现Scrollable
界面。
所以基本上你需要实现getScrollableTracksViewportWidth()
方法来返回“true”
。现在,将调整主面板的大小以填充滚动窗格的宽度。
或者您自己可以查看为您提供此支持的Scrollable Panel,而不是自己实施Scrollable
界面的所有方法。