我有一个JPanel
,其布局为CardLayout
,每张卡片中都有另一张JPanel
,其布局BorderLayout
内部有JScrollPane
。< / p>
即
JScrollPane jscrollPane = new JScrollPane(filter.getFilterComponent());
JPanel jPanel = new JPanel(new CardLayout());
jPanel.add(jscrollPane);
JPanel container = new JPanel(new BorderLayout());
container.add(jPanel, BorderLayout.CENTER );
filter.getFilterComponent()
可以是文本框,复选框列表等等。
问题是它是JTextField
时看起来像这样
这是不良行为。当我使用FlowLayout
时,无论组件有多高,滚动条都不会出现。我认为它是因为它的父容器preferredSize
是0
如何防止JScrollPane
内的组件重新调整大小并使其尺寸保持原始尺寸?或者还有另一种方法吗?
答案 0 :(得分:0)
我使用FlowLayout
代替BorderLayout
JPanel container = new JPanel(new FlowLayout(FlowLayout.LEFT,0,0));
container.add(jPanel);
并设置JScrollPane
JScrollPane jscrollPane = new JScrollPane(filter.getFilterComponent());
jscrollPane.setPreferredSize(new Dimension(XX,YY));
XX
和YY
是父容器的宽度和高度,因此如果滚动窗格内的内容超出首选大小,它将滚动