Java / Chess Odd Gui Bug

时间:2017-03-27 04:40:31

标签: java swing debugging animation chess

所以我完全不知道为什么这不起作用 - 但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);
    }
}

1 个答案:

答案 0 :(得分:2)

您在其事件线程中的Swing GUI中调用sleep,这将阻止事件线程,阻止它执行必要的活动,例如绘制GUI并与用户交互,以及这将使GUI处于睡眠状态,使其无响应。解决方案是永远不要这样做,而是使用Swing Timer代替。

方面问题:在第一行的覆盖方法中添加对super.paintComponent(g);方法的调用。这将允许你的JPanel进行管家绘画。