我有一个使用EventQueue.invokeLater()的游戏。我正在添加代码,当游戏过度有效地重新启动游戏时,我想要推送一个新的EventQueue但是我在Eclipse中得到一个错误,它读取"类型中的方法push(EventQueue) EventQueue不适用于参数(void)"。我是使用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;
}
谢谢大家的帮助
答案 0 :(得分:1)
这是因为push
采用EventQueue
类型的参数,但您已使用EventQueue.invokeLater()
的结果调用它,这是void
方法
答案 1 :(得分:1)
EventQueue.invokeLater(r)
是void
,您不能将其用作push
方法的参数。