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

时间:2016-02-11 04:38:59

标签: java swing jpanel

我有一个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中。

最诚挚的问候。

1 个答案:

答案 0 :(得分:3)

您可以使用

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());
        }
    }
}