因此,我有一个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();
    }
}

最佳答案

您在checkBet方法中两次调用actionPerformed

@Override
public void actionPerformed(ActionEvent e) {
    checkBet(); // Here
    if(checkBet()) // And here
    {

10-06 08:55