【发布时间】:2020-08-16 23:32:04
【问题描述】:
我有一个 JScrollPane 和一个 JPanel。
JScrollPane scrollPane_yst = new JScrollPane();
scrollPane_yst.setBorder(null);
scrollPane_yst.setViewportBorder(null);
panel.add(scrollPane_yst);
JPanel panel_yst = new JPanel();
panel_yst.setPreferredSize(new Dimension(150, 1000));
panel_yst.setBorder(null);
panel_yst.setBackground(Color.DARK_GRAY);
scrollPane_yst.setViewportView(panel_yst);
panel_yst.setLayout(new BoxLayout(panel_yst, BoxLayout.Y_AXIS));
在运行时,我将其他组件添加到 panel_yst,但当组件超出其大小时,它不会变大。 (设置首选大小和不设置首选大小的问题相同)
回答:
我找到了解决方案。问题是,我设置了稍后添加到滚动窗格内面板上的面板的首选大小。
正因为如此,这些面板的尺寸被弄乱了。只是不要设置您添加到面板上的组件的 PreferredSize。
【问题讨论】:
-
不要人为地限制 JPanel 的首选大小。让其布局管理器和组件首选尺寸为您执行此操作。
-
minimal reproducible example 也会有所帮助。
-
@HovercraftFullOfEels 不管我是否设置了首选尺寸。不知何故,面板不能比 ScrollPane 大,如果我不设置它也是如此。
-
那么是的,按照@GeorgeZ 的建议,在您的问题中创建并发布一个有效的minimal reproducible example。这将使我们能够亲眼看到和体验什么不起作用以及为什么。该链接将解释这是什么以及它如何帮助您和我们。
-
"ANSWER:" 应该在下面,而不是编辑到问题中。
标签: java swing resize jscrollpane