Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
/*
 * This file is part of WebLookAndFeel library.
 *
 * WebLookAndFeel library is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * WebLookAndFeel library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with WebLookAndFeel library.  If not, see <http://www.gnu.org/licenses/>.
 */

import java.awt.Component;

import java.awt.Container;

public class Main {
    /**
     * Returns first component placed in the specified container which is
     * instance of specified class type or null if none found.
     *
     * @param container
     *            container to look for component in
     * @param componentClass
     *            component class
     * @param <T>
     *            component class type
     * @return first component placed in the specified container which is
     *         instance of specified class type or null if none found
     */
    public static <T extends Component> T getFirst(final Container container, final Class<T> componentClass) {
        return getFirst(container, componentClass, false);
    }

    /**
     * Returns first component placed in the specified container which is
     * instance of specified class type or null if none found.
     *
     * @param container
     *            container to look for component in
     * @param componentClass
     *            component class
     * @param recursive
     *            whether to check all subcontainers or not
     * @param <T>
     *            component class type
     * @return first component placed in the specified container which is
     *         instance of specified class type or null if none found
     */
    public static <T extends Component> T getFirst(final Container container, final Class<T> componentClass,
            final boolean recursive) {
        for (int i = 0; i < container.getComponentCount(); i++) {
            final Component component = container.getComponent(i);
            if (componentClass.isInstance(component)) {
                return (T) component;
            }
            if (recursive) {
                if (component instanceof Container) {
                    final T first = getFirst((Container) component, componentClass, recursive);
                    if (first != null) {
                        return first;
                    }
                }
            }
        }
        return null;
    }
}