Added invokeAndWaitQuietly which swallows exceptions

This commit is contained in:
nathan 2016-10-04 23:25:57 +02:00
parent e28d00882a
commit a5a6db072f

View File

@ -15,10 +15,21 @@
*/ */
package dorkbox.util; package dorkbox.util;
import javax.swing.JOptionPane; import java.awt.Component;
import javax.swing.SwingUtilities; import java.awt.Container;
import javax.swing.UIManager; import java.awt.Desktop;
import java.awt.*; import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.Window;
import java.awt.event.HierarchyEvent; import java.awt.event.HierarchyEvent;
import java.awt.event.HierarchyListener; import java.awt.event.HierarchyListener;
import java.awt.event.WindowListener; import java.awt.event.WindowListener;
@ -31,6 +42,10 @@ import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
import java.util.Enumeration; import java.util.Enumeration;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public public
class SwingUtil { class SwingUtil {
/** All of the fonts in the {@link #FONTS_LOCATION} will be loaded by the Font manager */ /** All of the fonts in the {@link #FONTS_LOCATION} will be loaded by the Font manager */
@ -278,17 +293,24 @@ class SwingUtil {
} }
public static public static
void invokeAndWait(final Runnable runnable) { void invokeAndWait(final Runnable runnable) throws InvocationTargetException, InterruptedException {
if (EventQueue.isDispatchThread()) {
runnable.run();
}
else {
EventQueue.invokeAndWait(runnable);
}
}
public static
void invokeAndWaitQuietly(final Runnable runnable) {
if (EventQueue.isDispatchThread()) { if (EventQueue.isDispatchThread()) {
runnable.run(); runnable.run();
} }
else { else {
try { try {
EventQueue.invokeAndWait(runnable); EventQueue.invokeAndWait(runnable);
} catch (InvocationTargetException e) { } catch (Exception ignore) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} }
} }
} }