SwingUtilities.invokeLater — есть invokeNow?

У меня была проблема раньше, когда я пытался добавить объекты на свой холст, но SwingUtilities.invokeLater еще не выполнил свою работу. Мне действительно нужно иметь возможность надежно добавлять вещи в эту JPanel, но я продолжаю сталкиваться с той же ошибкой. Есть ли лучшая альтернатива приведенному ниже коду?

private void startNewGame() {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            gameFrame = new InvadersGameFrame();
        }
    });
}

person user1695505    schedule 22.04.2014    source источник
comment
В стороне: я ввел этот ответ, прежде чем внимательно прочитать вопрос. invokeLater у меня всегда работал надежно. Проблема в другом. Чтобы быстрее получить помощь, опубликуйте MCVE (минимальный полный и проверяемый пример).   -  person Andrew Thompson    schedule 22.04.2014
comment
Я думаю, что вызовы SwingUtilities.invokeLater поставлены в очередь. Это означает, что если вы вызываете SwingUtilities.invokeLater для добавления объекта в jpanel перед вызовом для добавления new InvadersGameFrame();, первый вызов должен быть выполнен перед вторым.   -  person Totò    schedule 22.04.2014
comment
Это сильно пахнет XY-проблемой.   -  person Hovercraft Full Of Eels    schedule 22.04.2014


Ответы (1)