Java Swing UI Thread Event invokeOnEDT(final Runnable aRunnable)

Here you can find the source of invokeOnEDT(final Runnable aRunnable)

Description

Similar as to SwingUtilities#invokeLater(Runnable) , but does a check first if the current running thread is already the EDT.

License

Open Source License

Parameter

Parameter Description
aRunnable the runnable to call on the EDT, cannot be <code>null</code>.

Declaration

public static void invokeOnEDT(final Runnable aRunnable) 

Method Source Code

//package com.java2s;
/*/*w  w  w  .  j a  v a 2  s.c  om*/
 * OpenBench LogicSniffer / SUMP project
 *
 * This program 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 2 of the License, or (at
 * your option) any later version.
 *
 * This program 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 this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
 *
 * 
 * Copyright (C) 2010-2011 - J.W. Janssen, http://www.lxtreme.nl
 */

import javax.swing.*;

public class Main {
    /**
     * Similar as to {@link SwingUtilities#invokeLater(Runnable)}, but does a
     * check first if the current running thread is already the EDT. If so, it
     * will directly call the {@link Runnable#run()} method, otherwise leave it up
     * to {@link SwingUtilities#invokeLater(Runnable)} to invoke it on a later
     * moment.
     * 
     * @param aRunnable
     *          the runnable to call on the EDT, cannot be <code>null</code>.
     */
    public static void invokeOnEDT(final Runnable aRunnable) {
        // System.out.println( "invokeOnEDT called with " + aRunnable );
        if (SwingUtilities.isEventDispatchThread()) {
            aRunnable.run();
        } else {
            SwingUtilities.invokeLater(aRunnable);
        }
    }
}

Related

  1. invokeLaterIfNeeded(Runnable runnable)
  2. invokeLaterOnEDT(Runnable runnable)
  3. invokeNow(Runnable runnable)
  4. invokeNowOrLater(Runnable run)
  5. invokeOnEDT(final Object target, final String methodName, final Object... args)
  6. invokeOnEventDispatchThread(Runnable r)
  7. invokeOnEventDispatchThreadIfRequired(final Runnable runnable)
  8. invokeOnEventThread(Runnable r)
  9. invokeOnEventThread(Runnable r)