在Java Swing中的repaint()之间暂停

时间:2018-11-25 01:46:26

标签: java swing swingworker

我正在尝试执行此for循环,并在每次重绘暂停时显示板上的更改。我已经尝试了使用Java Swing Timer和Thread.Sleep的不同方法,但是都没有成功。显示每个凹坑(扩展的JButton类)改变颜色一秒钟,然后返回原始颜色,然后改变下一个...等等,直到for循环完成的最佳方法是什么?

当我使用Thread.Sleep时,它将贯穿睡眠值的持续时间,然后显示最终状态,但没有中间步骤。

public void move(Pit curr) {
    int i;
    for (i = curr.getID() + 1; i <= (curr.getID() + curr.getValue()); i++) {
        pits[i % 14].colorState = true;
        incrementCount(pits[i % 14]);
        if (i > curr.getID() + 1)
            pits[(i - 1) % 14].colorState = false;
        repaint();
    }
    updateCount(curr, 0);
    pits[(i - 1) % 14].colorState = false;
    repaint();
}

0 个答案:

没有答案