我有一个使用EventQueue.invokeLater()的游戏。我添加的代码是我想在游戏结束时有效地重新启动游戏时推送新的EventQueue,但是我在Eclipse中遇到错误,该错误显示为“ EventQueue类型的方法push(EventQueue)不适用于自变量(无效)”。我是使用EventQueue类的新手,所以可能有一些我不了解的简单事情,或者我尝试不正确地使用EventQueue。这是我第一次使用EventQueue.invokeLater()运行程序的代码。

public class App extends JFrame{
    public static int level;
    public App(){
        add(new GameBoard());
        setResizable(false);
        pack();
        setTitle("Planetary Resources Game");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void main(String drew[]){
        MyQue r = new MyQue();
        EventQueue.invokeLater(r);
    }
}


这是我想使用Event.Queue.push()方法重新启动游戏的代码。

if(GameLogic.game_is_over == true){
                MyQue r = new MyQue();
                EventQueue.push(EventQueue.invokeLater(r));
                MineCalculation.rocketfuel_amount= 100;
                GameLogic.game_is_over = false;
            }


谢谢大家的帮助

最佳答案

这是因为push接受类型为EventQueue的参数,但是您已经用EventQueue.invokeLater()的结果调用了它,这是一个void方法。

10-04 20:45