gpt4 book ai didi

带有flowlayout的java滚动面板

转载 作者:行者123 更新时间:2023-11-29 06:46:51 25 4
gpt4 key购买 nike

出于某种原因,我无法正常工作。它真的应该很简单。

我有一个带有 BorderLayout 的 JFrame,它包含一个 JPanel(SOUTH)和一个(CENTER)JPanel (itemPanel)。

itemPanel 应该包裹在滚动 Pane 中。它的宽度 = x,它的所有子元素共享它的长度,所以它基本上就像一个只有 1 列的表格。

出于某种原因,我无法让滚动 Pane 显示滚动条(和滚动条)。在 JFrame 中:

setPreferredSize(dimension);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add("South",controlPanel);
JScrollPane scroll = new JScrollPane(itemPanel);
scroll.setBorder(null);
getContentPane().add("Center",scroll);
super.pack();
setVisible(true);

初始化并向 itemPanel 添加一些虚拟面板:

itemPanel = new ItemPanel(); // A JPanel with a flowlayout
itemPanel.setPreferredSize(new Dimension(dimension.width,0));
for(int i = 0; i < 20; i++){
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(0,50));
p.setBackground(i%2 == 0 ? Color.GREEN : Color.YELLOW);
itemPanel.add(p);
}

如果省略 itemPanel.setPreferredSize(new Dimension(dimension.width,0)); 滚动 Pane 显示水平滚动条,但由于流式布局没有可遵循的宽度,它只显示一排组件。

最佳答案

FlowLayout 不会重新计算面板的首选大小。只有当组件的首选大小大于滚动 Pane 的大小时,滚动条才会出现。

WrapLayout可能是您正在寻找的。

关于带有flowlayout的java滚动面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3592828/

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