所以我完全不知道为什么这不起作用 - 但GUI不响应getMove(GameState gameState)
方法中的任何内容。
即使在我移动后暂停睡眠 - 它根本没有显示任何东西。任何帮助都会很棒。我迷路了。
public class Engine extends Player {
private GameState copy;
public Engine(Color color, Direction direction) {
super(color, direction);
}
public Move getMove(GameState gameState) {
gameState.executeMove(new Move(4, 6, 4, 4));
try {
TimeUnit.SECONDS.sleep(1);
} catch (Exception e) {
e.printStackTrace();
}
return new Move(5, 6, 5, 4);
}
}
答案 0 :(得分:2)
您在其事件线程中的Swing GUI中调用sleep
,这将阻止事件线程,阻止它执行必要的活动,例如绘制GUI并与用户交互,以及这将使GUI处于睡眠状态,使其无响应。解决方案是永远不要这样做,而是使用Swing Timer代替。
方面问题:在第一行的覆盖方法中添加对super.paintComponent(g);
方法的调用。这将允许你的JPanel进行管家绘画。