我正在使用网格布局,但除第一个面板外,其他面板不会显示在框架中。我该如何解决这个问题?
这是一些代码
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/