Java Swing Focus requestComponentFocus(final Window win, final JComponent comp)

Here you can find the source of requestComponentFocus(final Window win, final JComponent comp)

Description

Registers a (temporary) WindowListener with the window that will activate the passed component as soon as the windowActivated() event is received.

License

Apache License

Parameter

Parameter Description
win the parent window
comp the component to focus in the window

Declaration

public static void requestComponentFocus(final Window win,
        final JComponent comp) 

Method Source Code

//package com.java2s;
/*/*from  w  ww  . j av a2s  . co  m*/
 * WbSwingUtilities.java
 *
 * This file is part of SQL Workbench/J, http://www.sql-workbench.net
 *
 * Copyright 2002-2015, Thomas Kellerer
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at.
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * To contact the author please send an email to: support@sql-workbench.net
 *
 */

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;

public class Main {
    /**
     * Registers a (temporary) WindowListener with the window that will activate the passed component
     * as soon as the windowActivated() event is received.
     *
     * @param win  the parent window
     * @param comp the component to focus in the window
     */
    public static void requestComponentFocus(final Window win,
            final JComponent comp) {
        win.addWindowListener(new WindowAdapter() {
            @Override
            public void windowActivated(WindowEvent evt) {
                EventQueue.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        comp.requestFocus();
                    }
                });
                win.removeWindowListener(this);
            }
        });
    }

    /**
     * A simple wrapper around EventQueue.invokeLater().
     *
     * @param runner the task to execute
     */
    public static void invokeLater(Runnable runner) {
        EventQueue.invokeLater(runner);
    }

    /**
     * Schedules a requestFocus() call in the AWT event queue.
     *
     * @param comp the component to focus
     * @see java.awt.EventQueue#invokeLater(java.lang.Runnable)
     */
    public static void requestFocus(final JComponent comp) {
        if (comp == null)
            return;

        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                comp.requestFocus();
            }
        });
    }
}

Related

  1. isParentWindowFocused(Component component)
  2. isParentWindowFocused(Component component)
  3. paintFocusRect(Graphics g, Rectangle r)
  4. postponeFocus(final Component target)
  5. removeFocus(JComponent component)
  6. requestComponentFocus(final Window win, final JComponent comp)
  7. requestFocus(final JComponent comp)
  8. requestFocus(final JComponent comp)
  9. requestFocus(final JComponent component)