Java 怎么获取属于或派生自给定类的所有子组件

2019年8月18日21:59:26 评论 21

1.简介

Java 怎么获取属于或派生自给定类的所有子组件?——请看下文。

2.代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */


import java.awt.Component;
import java.awt.Container;

import java.util.ArrayList;
import java.util.List;
import javax.swing.JComponent;

public class Main {
    
    public static <T extends JComponent> List<T> getChildComponents(
            Class<T> clazz, Container parent, boolean includeNested) {

        List<T> children = new ArrayList<T>();

        for (Component c : parent.getComponents()) {
            boolean isClazz = clazz.isAssignableFrom(c.getClass());
            if (isClazz) {
                children.add(clazz.cast(c));
            }
            if (includeNested && c instanceof Container) {
                children.addAll(getChildComponents(clazz, (Container) c,
                        includeNested));
            }
        }

        return children;
    }
}

 

3.总结

示例代码演示了 Java 怎么获取属于或派生自给定类的所有子组件,具体步骤参见示例代码。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: