有没有更优雅的方式可以做下面的事情?也就是说,是否有比轮询和睡眠,轮询和睡眠等更优雅的方法来知道何时通过Runnable.run()调用了invokeLater()方法?

private int myMethod() {
    final WaitForEventQueue waitForQueue = new WaitForEventQueue();
    EventQueue.invokeLater(waitForQueue);
    while (!waitForQueue.done) {
        try {
            Thread.sleep(10);
        } catch (InterruptedException ignore) {
        }
    }

    return 0;
}

private class WaitForEventQueue implements Runnable {
    private boolean done;

    public void run() {
        // Let all Swing text stuff finish.
        done = true;
    }
}

最佳答案

如果要等待,为什么不调用invokeAndWait而不是自己实现呢?

关于java - 等待invokeLater()被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2805378/

10-10 17:59