Java Swing Focus setFocusableRecursively(final JComponent component, final boolean focusable, final boolean childsOnly)

Here you can find the source of setFocusableRecursively(final JComponent component, final boolean focusable, final boolean childsOnly)

Description

Sets focusable state of component and all of its children.

License

Open Source License

Parameter

Parameter Description
component component to modify
focusable whether component is focusable or not
childsOnly whether exclude component from changes or not

Declaration

public static void setFocusableRecursively(final JComponent component, final boolean focusable,
        final boolean childsOnly) 

Method Source Code

//package com.java2s;
/*//from  w ww  . j  ava 2 s .  c  om
 * 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 javax.swing.JComponent;

public class Main {
    /**
     * Sets focusable state of component and all of its children.
     *
     * @param component
     *            component to modify
     * @param focusable
     *            whether component is focusable or not
     */
    public static void setFocusableRecursively(final JComponent component, final boolean focusable) {
        setFocusableRecursively(component, focusable, false);
    }

    /**
     * Sets focusable state of component and all of its children.
     *
     * @param component
     *            component to modify
     * @param focusable
     *            whether component is focusable or not
     * @param childsOnly
     *            whether exclude component from changes or not
     */
    public static void setFocusableRecursively(final JComponent component, final boolean focusable,
            final boolean childsOnly) {
        if (!childsOnly) {
            component.setFocusable(focusable);
        }
        for (int i = 0; i < component.getComponentCount(); i++) {
            if (component.getComponent(i) instanceof JComponent) {
                setFocusableRecursively((JComponent) component.getComponent(i), focusable, false);
            }
        }
    }
}

Related

  1. requestFocus(final Window win, final Component comp)
  2. requestFocusInWindow(final Component c)
  3. selectAllOnFocusGained()
  4. selectAndFocus(JComponent component)
  5. setFocus(JComponent component)
  6. setFocusOn(Component component)
  7. setFocusOrder(JComponent... components)
  8. setNextFocusable(JComponent component, final JComponent nextFocusable)
  9. smartRequestFocus(Component component)