package org.robotframework.swing.util; import java.awt.AWTEvent; import java.awt.Toolkit; import java.lang.reflect.InvocationTargetException; import javax.swing.SwingUtilities; public class SwingInvoker { public static void postEvent(final AWTEvent event) { invokeAndWait(new Runnable() { @Override public void run() { Toolkit.getDefaultToolkit().getSystemEventQueue() .postEvent(event); } }); } public static void invokeAndWait(final Runnable runnable) { try { SwingUtilities.invokeAndWait(runnable); } catch (InvocationTargetException e) { Throwable cause = e.getCause(); throw new RuntimeException(cause != null ? cause.getMessage() : e.getMessage(), e); } catch (InterruptedException e) { throw new RuntimeException(e); } } }