我正在尝试切换 boolean 值playerTurn
以允许我控制方法。但是,它不起作用,方法不会移动,也不会打印出其他打印语句。
moveC1But.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae)
{
diceRoll();
private boolean playerTurn = true;
if(playerTurn == true)
{
moveC1Up();
firstPanel.repaint();
System.out.print(diceRoll());
System.out.print("Moving counter 1");
playerTurn = !playerTurn;
}else if(playerTurn == false)
{
moveC3Up();
firstPanel.repaint();
System.out.print(diceRoll());
System.out.print("Moving counter 3");
playerTurn = !playerTurn;
}
}
});
最佳答案
这是您的操作:
- 我掷骰子
- 轮到我了!
- 是的,轮到我了,所以我向上移动,重新粉刷,但还没轮到我
- 我退出
还是一样...出了点问题...第二个 if 无法执行。
解决方案: 在更高的类中创建一个playerTurn变量,而不是每次在ActionListener中创建它。
使用调试器并分析程序如何工作,然后您就会发现问题所在。
关于Java 切换 boolean 值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350229/