Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOptionPane.showInputDialog的用户输入验证_Java_Validation_Joptionpane - Fatal编程技术网

Java JOptionPane.showInputDialog的用户输入验证

Java JOptionPane.showInputDialog的用户输入验证,java,validation,joptionpane,Java,Validation,Joptionpane,我只是在学习JAVA,在代码的这一部分遇到了一些麻烦。我搜索了几个网站,尝试了许多不同的方法,但似乎不知道如何实现一个适用于不同可能性的方法 int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n" + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n

我只是在学习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。有人对我如何做到这一点有什么建议吗

int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
                + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;
我尝试了while循环、在将输入转换为整数之前检查null的if语句,以及几种不同类型的if-else-if方法

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

提前谢谢

阅读上Swing教程中的部分,它实际上向您展示了如何轻松使用JOptionPane,这样您就不需要验证输入

int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
                + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;
您可以使用不同的方法。您可以使用组合框来显示选项,也可以使用多个按钮来选择选项

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

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

您需要执行以下操作来处理错误输入:

int playerChoice = Integer.parseInt(JOptionPane.showInputDialog(null, "Enter number for corresponding selection:\n"
                + " (1) - ROCK\n (2) - PAPER\n (3) - SCISSORS\n")) - 1;
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
boolean inputAccepted=false;
而(!inputAccepted){
试一试{
int playerChoice=Integer.parseInt(JOption…)。。。。
//做一些其他的验证检查
如果(播放选择<1 | |播放选择>3){
//告诉用户仍然是一个错误的数字
}否则{
//万岁-一个很好的价值观
inputAccepted=true;
}
}捕获(数字格式){
//输入不正确。最好弹出窗口
//此处的对话框(或其他通信)
//说出你对未来的期望
//用户输入。
}
…做具有良好输入值的事情
}

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