我正在开发一个琐事游戏来学习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,有没有办法区分这两个?感谢
答案 0 :(得分:1)
不,没有。该特定API无法提供足够的细粒度信息,了解他们是否点击了按钮或点击了窗口上的“X”。
您当然可以创建自己的UI并且能够告诉它,或者可能是JOptionPane的子类,并添加一个新的showInputDialog方法,更多地了解窗口的内部状态。