我正在尝试将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
来查看我正在创建和插入多少个面板,这似乎没问题。问题是他们都被安置在同一个地方,一个在另一个地方。
我该如何避免这种行为?
谢谢
答案 0 :(得分:3)
在将组件添加到BorderLayout时未指定约束时,所有组件都将转到CENTER。但是,只有最后添加的组件才可见。
解决方案是使用不同的布局管理器。
由于您是在循环中添加组件,我建议您可能需要查看GridLayout
。
阅读Layout Managers上Swing教程中的部分,了解更多信息和工作示例。
您始终可以使用不同的布局管理器嵌套面板,以实现所需的布局。