所以我有一个 JOptionPane,当某个条件不满足时会出现,并且由于某种原因,当我按"确定"时,它再次出现,但是当在第二个对话框中按"确定"时,它会走路。
以下是进行对话的方法:
public boolean checkBet()
{
if(currentPlayer.getBet() <= 0)
{
JOptionPane.showMessageDialog(null, "You must place a bet before you can roll your dice!.",
"Bet Required!",
JOptionPane.ERROR_MESSAGE);
return false;
}
else
return true;
}
这就是调用上述方法的地方:
@Override
public void actionPerformed(ActionEvent e) {
checkBet();
if(checkBet())
{
setRollingPlayer(currentPlayer);
new Thread() {
@Override
public void run() {
gameEngine.rollPlayer(rollingPlayer, 500, 2000, 500);
}
}.start();
}
}
在actionPerformed
方法中调用checkBet
两次
@Override
public void actionPerformed(ActionEvent e) {
checkBet(); // Here
if(checkBet()) // And here
{
当你在actionPerformed()
中调用函数checkBet()
时,它已经被提到了两次。函数checkBet()
也将在if()
内部执行。
删除一次调用,它将执行一次。