java - 如何将指定数量的 JPanel 添加到 JFrame 中?

标签 java swing

我正在使用网格布局,但除第一个面板外,其他面板不会显示在框架中。我该如何解决这个问题?

这是一些代码

int numPanel = 5;

frame.setLayout(new GridLayout(numPanel, 1));

JPanel _panel = new JPanel();

for(int i = 0; i < numPanel; i++)
  {
     frame.add(_panel);
  }

最终目标是让用户指定框架中包含多少个面板。我已经知道如何完成那部分了。我只需要有关显示面板的帮助。

最佳答案

从技术上讲,您只需添加一个...

JPanel _panel = new JPanel();    
for(int i = 0; i < numPanel; i++)
{
    frame.add(_panel);
}

基本上,一个组件只能驻留在单个父级上,但您所做的只是创建 JPanel 的单个实例,并尝试将其重复添加到某个框架中...

相反,您需要在每次迭代时创建一个新实例

for(int i = 0; i < numPanel; i++)
{
    JPanel _panel = new JPanel();    
    frame.add(_panel);
}

此外,如果您想保留对您创建的每个面板的引用,您可以使用数组或列表

关于java - 如何将指定数量的 JPanel 添加到 JFrame 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23331861/

相关文章:

java - 我可以本地化 JOptionPane 是/否/取消选项吗?

java - 如何用JUNG2画直线?

java - JTextPane 中没有滚动条

java - 在android中存储大量图像

java - 用于读取 outlook 电子邮件、日历等的开源 java 库

java - 我如何测试注释处理器生成的无 .java 源?

c# - 如何在 Java swings GUI 应用程序中访问和使用 C# dll

Java如何抽象地持久化一个值?

java - 如何使用 Bootstrap 主题生成 JavaDoc?

java - 使用 setIcon 重叠图像