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;
    /*// w w  w  .j  av  a  2s .c o m
     * WbSwingUtilities.java
     *
     * This file is part of SQL Workbench/J, http://www.sql-workbench.net
     *
     * Copyright 2002-2017, Thomas Kellerer
     *
     * Licensed under a modified Apache License, Version 2.0
     * that restricts the use for certain governments.
     * You may not use this file except in compliance with the License.
     * You may obtain a copy of the License at.
     *
     *     http://sql-workbench.net/manual/license.html
     *
     * 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 java.awt.EventQueue;

    import java.awt.Window;

    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;

    import javax.swing.JComponent;

    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(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);
        }
    }

Related

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