如何防止 JScrollPane 中的组件调整大小?
How to prevent component inside JScrollPane to resize?
我有一个 JPanel
的布局 CardLayout
并且在每张卡片中还有另一个 JPanel
的布局 BorderLayout
里面有一个 JScrollPane
.
即
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
中的组件调整大小并保持其原始尺寸?或者还有其他方法吗?
我用了 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
是父容器的宽度和高度,所以如果滚动窗格内的内容超过首选大小,它将滚动
我有一个 JPanel
的布局 CardLayout
并且在每张卡片中还有另一个 JPanel
的布局 BorderLayout
里面有一个 JScrollPane
.
即
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
中的组件调整大小并保持其原始尺寸?或者还有其他方法吗?
我用了 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
是父容器的宽度和高度,所以如果滚动窗格内的内容超过首选大小,它将滚动