java - JPanel 数组仅显示数组中的最后一个面板

标签 java swing jpanel jlabel

我创建了一个 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/

相关文章:

java - JFrame 中的 JPanel 中的 JScrollPane 中的 JTextPane

java - 如何在Java swing中调整面板中的图像?

java - Spark Web 框架单元测试

java - 如何使用 select * 从数据库中选择唯一的列值?

java - 如何将一个框架分成两部分

Java Swing BorderLayout resize困难

java - 在 JTextPane 中转换为大写或小写时,文本样式和格式发生变化

java - .getSize() 在 JScrollPane 中更新,但不在 JPanel 中更新

java - 如何从 Bytebuddy 中的 AnnotationDescription.Loadable 获取注释值

java - 数字命理顺序