如何在 java 中获取另一个 JPanel 中的 JPanel 组件

How to get components of a JPanel which inside another JPanel in java

我有一个 JPanel(第一个 JPanel),它填充了另一个 JPanel(第二个 JPanel)。

我以编程方式将第二个 JPanel 添加到第一个 JPanel。如下图,

firstJPanel.removeAll();
JPanel secondJPanel = new JPanel(gridLayout);
secondJPanel.setBorder(new TitledBorder("Testing"));
secondJPanel.setName("secondJPanel");
firstJPanel.add(secondJPanel);
firstJPanel.revalidate();

第二个 JPanel 有一些组件,如 JTextFields、JCheckBoxes 等。我尝试获取这些组件。但是我只能得到第二个 JPanel。

这是我的代码示例,

Component[] components = firstJPanel.getComponents();
for(int i=0;i<components.length;i++){
     System.out.println("Componenet name - " + components[i].getName());           
}

有任何 iedas 来获取第二个 JPanel 中的组件。

此致。

你可以点赞

Component[] components = firstJPanel.getComponents();
for (int i = 0; i < components.length; i++) {
    System.out.println("Componenet name - " + components[i].getName());
    if (components[i] instanceof JPanel
            && components[i].equals(secondJPanel)) {

        Component s[] = ((JPanel) components[i]).getComponents();
        for (int j = 0; j < s.length; j++) {
            System.out.println("Sub Componenet name - " + s[j].getName());
        }
    }
}