我创建了一个 JPanel 数组,其中包含一个通用的 JLabel
class gui
{
JPanel[] multpanel;
JPanel finalPane = new JPanel();
JLabel InputLabel = new JLabel("Input Files");
gui()
{
InputLabel.setLocation(50,50);
InputLabel.setSize(120,20);
int total_instances=2;
multpanel=new JPanel[total_instances];
for(int instance=0;instance<total_instances;instance++)
{
multpanel[instance]=new JPanel();
multpanel[instance].setLocation(10,0);
multpanel[instance].setSize(500,500);
multpanel[instance].setLayout(null);
multpanel[instance].add(InputLabel);
}
finalPane.add(multpanel[0]);
finalPane.add(multpanel[1]);
JFrame.setDefaultLookAndFeelDecorated(true);
frame.getContentPane().add(finalPane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800,800);
frame.setVisible(true);
}
这是我的程序的简短版本,我创建了一组面板,并且一次只有一个面板可见 我的问题是,它只显示数组中的最后一个面板,在我的情况下,显示数组的第二个面板,当我尝试显示第一个面板时,它什么也不显示
就像如果我有大小为 5 的面板阵列,则仅显示第 5 个面板,而所有其他面板显示空白
这是因为我在其中添加了一个通用标签
请帮忙
最佳答案
给定的组件只能有一个祖先。因此,当您向面板添加标签时,您实际上是将其从前一个面板中删除。如果您想要 5 个面板中的标签,则需要 5 个标签。
两个附加说明:
- 您应该学习 Java 命名约定并遵守它们。变量以小写字母开头,类以大写字母开头。
- 您应该学习使用布局管理器。这是布局组件的正确方法。不要将布局设置为 null。
关于java - JPanel 数组仅显示数组中的最后一个面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8677620/