Java Miglayout 包装 JPanel

Java Miglayout wrap JPanels

我想弄清楚为什么我在添加 JPanel 后无法换行。我的目标是 class 构建我的 JPanel,然后将其添加到主屏幕,所有 JPanel 相互堆叠。如果我用 JLables 替换 JPanels,我可以让它工作。这是我目前的结果:

JPanel zPanel = new JPanel();
    for(int i = 0; i < zones.size(); i++ )
    {
        JLabel zLabel = new JLabel(zones.get(i));
        zPanel.add(zLabel);
        grid.add(zPanel,"wrap");
    }

以及我正在尝试做的事情:

for(int i = 0; i < zones.size(); i++ )
    {
        JLabel zLabel = new JLabel(zones.get(i));
        grid.add(zLabel,"wrap");
    }

如果您要将 JLabel 添加到 JPanel 中,则需要将其包裹在 JPanel 本身中。并且,在填充所有子项时添加 zPanel

JPanel zPanel = new JPanel(new MigLayout("wrap 1");
for(int i = 0; i < zones.size(); i++ )
{
    JLabel zLabel = new JLabel(zones.get(i));
    zPanel.add(zLabel);
}
grid.add(zPanel,"wrap");