我正在开发一个学习 Java 的问答游戏,但我无法区分用户按下窗口顶部的(通常是红色的)取消/X 按钮和按下 JOptionPane.showInputDialog 的“确定”和“取消”中的取消按钮选项。以下是我提出问题并读入答案的代码:
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 由取消和关闭按钮返回,有没有办法区分两者?谢谢
最佳答案
不,没有。该特定 API 没有提供足够详细的信息来了解他们是单击了按钮还是单击了窗口上的“X”。
您当然可以制作自己的 UI 并能够以这种方式进行识别,或者可能将 JOptionPane 子类化并添加一个新的 showInputDialog 方法,以了解更多窗口的内部状态。
关于java - 区分在 JOptionPane.showInputDialog 上按下关闭和取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48601197/