简体   繁体   English

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

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

I have a JPanel(first JPanel) and it fill with another JPanel(second JPanel). 我有一个JPanel(第一个JPanel),它填充另一个JPanel(第二个JPanel)。

I add this second JPanel to first JPanel programmatically. 我以编程方式将第二个JPanel添加到第一个JPanel。 Like below, 如下,

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

The second JPanel has some components like JTextFields , JCheckBoxes, etc . 第二个JPanel有一些组件,如JTextFields,JCheckBoxes等。 I try to get these components . 我试着获得这些组件。 But I could get only the second JPanel. 但我只能获得第二个JPanel。

Here is my code sample, 这是我的代码示例,

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

Have any iedas to get the components inside the second JPanel. 有任何iedas来获取第二个JPanel内的组件。

Best Regards. 最好的祝福。

You can use like 你可以使用喜欢

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM