我做了一个非常简单的测试用例:
- 我有一个带有
BorderLayout
(panel1)的全局包含面板 - 这个全局面板包含一个
JScrollPane
(scroll1) - 这
JScrollPane
包含一个面板,上面有一BoxLayout
组PAGE_AXIS
(panel2)
然后我有一小段代码将组件(JLabel
's)添加到panel2:
for (int i = 0; i < 150; i++) {
panel2.add(new JLabel(String.valueOf(i)));
}
panel2.revalidate();
有用。现在我想使用我制作的自定义面板,它扩展了JXPanel
SwingX。所以panel2在我的测试用例中看起来像:
public class Panel2 extends JXPanel {
}
它不起作用了。滚动条不出现。为什么?JXPanel
使用within时有什么特别的事情要做JScrollPane
吗?
编辑:
使用setScrollableHeightHint(ScrollableSizeHint.NONE);
on后panel2
,panel2
根据其中的组件数量调整自身大小,这不是我想要的行为,我希望滚动窗格保持其固定大小。