7

我只是在学习 JAVA,并且在我的代码的这个特定部分遇到了一些麻烦。我搜索了几个站点并尝试了许多不同的方法,但似乎无法弄清楚如何实现一种适用于不同可能性的方法。

int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
                + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;

我想即使当用户没有输入以及输入不是 1、2 或 3 时,我也需要进行某种类型的验证。有人对我如何完成此操作有建议吗?

我尝试了一个 while 循环,一个在将输入转换为整数之前检查 null 的 if 语句,以及几种不同类型的 if else if 方法。

提前致谢!

4

2 回答 2

6

你需要做这样的事情来处理错误的输入:

boolean inputAccepted = false;
while(!inputAccepted) {
  try {
    int playerChoice = Integer.parseInt(JOption....

    // do some other validation checks
    if (playerChoice < 1 || playerChoice > 3) {
      // tell user still a bad number
    } else {
      // hooray - a good value
      inputAccepted = true;
    }
  } catch(NumberFormatException e) {
    // input is bad.  Good idea to popup
    // a dialog here (or some other communication) 
    // saying what you expect the
    // user to enter.
  }

  ... do stuff with good input value

}

于 2010-08-23T03:21:55.303 回答
2

阅读 Swing 教程中有关如何制作对话框的部分,它实际上向您展示了如何轻松使用 JOptionPane,因此您无需验证输入。

您可以使用不同的方法。您可以使用组合框来显示选项,也可以使用多个按钮来选择选项。

本教程还向您展示了如何“停止自动关闭对话框”,以便您可以验证用户输入。

于 2010-08-23T03:17:18.927 回答