我有一个使用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
方法。