13

如何在 Java Swing 中获取面板的所有组件?

有没有像foreachC# 这样的方法来处理 JPanel 的所有子组件?

4

2 回答 2

19

您可以使用以下方法getComponents

Component[] components = jpanel.getComponents();
于 2013-03-31T08:16:31.797 回答
1

如果您有多个 JPanel 并且想要获取所有组件名称,请尝试以下操作:

public void getAllComponetsNameInJPanels(JPanel... panels) {
    Component[] components;
    String componentName;
    for (JPanel panel : panels) {
        components = panel.getComponents();            
        for (Component compo : components) {
            componentName = compo.getClass().getName();
            System.out.println(compo.getClass().getName().substring(componentName.indexOf("swing.") + "swing.".length(), componentName.length()));
        }
        System.out.println("=====================");
    }
}
于 2020-10-28T15:36:47.193 回答