我有一个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中。
最诚挚的问候。
答案 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());
}
}
}