这是我的代码的相关部分:
private class ButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if (event.getSource() == push) {
g.getHuman().beAPig(true);
}
else {
g.getHuman().beAPig(false);
}
// take p1 turn and check if players switched
if (!g.gameOver() && g.playGame()) {
while(!g.playGame()); // loop until players switched
}
updateLabels();
if (g.gameOver()) {
gameOverDialog();
}
}
}
//-----------------------------------------------------------------
// Updates the score labels and die images.
//-----------------------------------------------------------------
private void updateLabels() {
die1Image.setIcon(pair.getDie1Image());
die2Image.setIcon(pair.getDie2Image());
p1RoundPointsLabel.setText(Integer.toString(g.getHuman().getRoundPoints()));
p1GamePointsLabel.setText(Integer.toString(g.getHuman().getGamePoints()));
p2RoundPointsLabel.setText(Integer.toString(g.getComputer().getRoundPoints()));
p2GamePointsLabel.setText(Integer.toString(g.getComputer().getGamePoints()));
sumLabel.setText(pair.toString());
}
所以这个游戏叫做PigDice。玩家和计算机轮流掷出一对骰子等。当任何一个骰子上的一个掷骰子时,该玩家的回合结束,并传递给另一个玩家。问题是,当我滚动一个,它立即切换到计算机,它立即轮流,立即切换回我并用计算机的最后一卷更新骰子图像。我想要做的就是当人类滚动一个东西时,它会更新模具图像以便你可以看到它们滚动的东西,然后暂停1-2秒,然后用计算机的结果更新所有标签转动。
我已经阅读了一些关于EDT的内容(没有完全理解),我尝试使用Thread.sleep()和InvokeLater()失败。
感谢。