避免JPanel越过另一个

时间:2015-05-31 18:23:51

标签: java swing jpanel layout-manager border-layout

我正在尝试将JPanels加载到另一个内部,但我只能看到一个,其他人隐藏在它背后。 这是我的代码:

    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来查看我正在创建和插入多少个面板,这似乎没问题。问题是他们都被安置在同一个地方,一个在另一个地方。 我该如何避免这种行为? 谢谢

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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