在JOptionPane.showInputDialog

时间:2018-02-03 19:32:06

标签: java swing joptionpane

我正在开发一个琐事游戏来学习Java,并且在用户按下窗口顶部的(通常是红色的)取消/ X按钮并按下JOptionPane.showInputDialog'中的取消按钮时无法区分。 s确定和取消选项。以下是我的代码,其中提出问题并阅读答案:

public int askQuestion() {
    JOptionPane optionPane = new JOptionPane("Here is a question", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);

    String guess = optionPane.showInputDialog(null, question, "Heres a test", JOptionPane.QUESTION_MESSAGE);
    if (guess == null){
        return ANSWER_CLOSED;
    } else {
        if (checkAnswer(guess))
            return ANSWER_CORRECT;
        else
            return ANSWER_INCORRECT;
    }
}

取消和关闭按钮都会返回ANSWER_CLOSED,有没有办法区分这两个?感谢

1 个答案:

答案 0 :(得分:1)

不,没有。该特定API无法提供足够的细粒度信息,了解他们是否点击了按钮或点击了窗口上的“X”。

您当然可以创建自己的UI并且能够告诉它,或者可能是JOptionPane的子类,并添加一个新的showInputDialog方法,更多地了解窗口的内部状态。