避免 JPanel 越过另一个

Avoid JPanel from getting over another

我正在尝试将 JPanel 加载到另一个中,但我只能看到一个,其他的都隐藏在它后面。 这是我的代码:

    pnlResultados.setLayout(new java.awt.BorderLayout());

    for (int i = 0; i < cantResultados; i++) {
        pResultado pr = new pResultado(modelo, resultados.get(i), padre, this);
        System.out.println("panel");
        pnlResultados.add(pr);
        pr.setVisible(true);
    }
    pnlResultados.setVisible(true);
    pnlResultados.revalidate();
    pnlResultados.repaint();

我已经使用 System.out.printl 来查看我创建和插入了多少面板,这看起来不错。问题是它们都被分配在同一个地方,一个在另一个之上。 我怎样才能避免这种行为? 谢谢

如果在向 BorderLayout 添加组件时未指定约束,则所有组件都将转到 CENTER。但是,只有最后添加的组件可见。

解决方案是使用不同的布局管理器。

由于您是在循环中添加组件,我建议您可能需要查看 GridLayout

阅读有关 Layout Managers 的 Swing 教程部分,了解更多信息和工作示例。

您始终可以使用不同的布局管理器嵌套面板以获得所需的布局。