【问题标题】:JPanel in JScrollPane doesn't adjust size dynamicallyJScrollPane 中的 JPanel 不会动态调整大小
【发布时间】: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


【解决方案1】:

我找到了解决方案。问题是,我设置了稍后添加到滚动窗格内面板上的面板的首选大小。

正因为如此,这些面板的尺寸被弄乱了。只是不要设置您添加到面板上的组件的 PreferredSize。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多