gpt4 book ai didi

java - 防止 JScrollPane 扩展其 viewPort 组件

转载 作者:行者123 更新时间:2023-12-01 17:17:56 27 4
gpt4 key购买 nike

我有一个子面板,我偶尔会向其中添加一些组件。我希望 FlowLayout 能够正确布局它们。我将子面板放在 JScrollPane 中,让用户看到所有组件,但我不想打扰用户水平滚动。但是,当添加更多组件时,JScrollPane 允许 subPanel 水平扩展自身。这样,所有组件都水平显示在一条线上。这意味着最糟糕的布局。

    this.setLayout(new GridLayout(1, 1));
subPanel = new JPanel(new FlowLayout(FlowLayout.LEADING));
subPanel.setMaximumSize(new Dimension(500, 4000));
subPanel.setBackground(Color.CYAN);
subPane = new JScrollPane(subPanel);
subPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
subPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
this.add(subPane);

我在其他地方添加了一个 componentListener 来解决问题,但问题仍然存在:

        @Override
public void componentShown(ComponentEvent e) {
subPanel.setSize(getSize());
}

@Override
public void componentResized(ComponentEvent e) {
subPanel.setSize(getSize());
}

this 是一个完全位于 JTabbedPane 中的 JPanel,因此它占据了所有选项卡。

最佳答案

也许您正在寻找Wrap Layout ,当水平空间被填充时,它将把组件换行到下一行。

关于java - 防止 JScrollPane 扩展其 viewPort 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20724849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com