JOptionPane.showMessageDialog必须退出两次

时间:2018-05-26 03:35:32

标签: java swing joptionpane

所以我有一个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();  
    }
}

2 个答案:

答案 0 :(得分:1)

您在checkBet方法

中拨打actionPerformed两次
@Override
public void actionPerformed(ActionEvent e) {
    checkBet(); // Here
    if(checkBet()) // And here
    {

答案 1 :(得分:1)

当你在checkBet()中调用函数actionPerformed()时,已经提到了两次。函数checkBet()也将在if()内执行。

删除一次调用,它将执行一次。