所以我有一个JOptionPane,当某个条件不满足时会出现,出于某种原因,当我按下“Ok”它再次出现时,但是当在第二个对话框中按“Ok”时它就会出现。
以下是进行对话的方法:
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();
}
}
答案 0 :(得分:1)
您在checkBet
方法
actionPerformed
两次
@Override
public void actionPerformed(ActionEvent e) {
checkBet(); // Here
if(checkBet()) // And here
{
答案 1 :(得分:1)
当你在checkBet()
中调用函数actionPerformed()
时,已经提到了两次。函数checkBet()
也将在if()
内执行。
删除一次调用,它将执行一次。