swingutilities.java

来自「java concurrency in practice 源码. JAVA」· Java 代码 · 共 43 行

JAVA
43
字号
package net.jcip.examples;import java.lang.reflect.InvocationTargetException;import java.util.concurrent.*;/** * SwingUtilities * <p/> * Implementing SwingUtilities using an Executor * * @author Brian Goetz and Tim Peierls */public class SwingUtilities {    private static final ExecutorService exec =            Executors.newSingleThreadExecutor(new SwingThreadFactory());    private static volatile Thread swingThread;    private static class SwingThreadFactory implements ThreadFactory {        public Thread newThread(Runnable r) {            swingThread = new Thread(r);            return swingThread;        }    }    public static boolean isEventDispatchThread() {        return Thread.currentThread() == swingThread;    }    public static void invokeLater(Runnable task) {        exec.execute(task);    }    public static void invokeAndWait(Runnable task)            throws InterruptedException, InvocationTargetException {        Future f = exec.submit(task);        try {            f.get();        } catch (ExecutionException e) {            throw new InvocationTargetException(e);        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?