2010-08-23 113 views
5

我刚学习JAVA,并在代码的这个特定部分遇到了一些麻烦。我搜索了几个网站,并尝试了许多不同的方法,但似乎无法弄清楚如何实施针对不同可能性的方法。JOptionPane.showInputDialog的用户输入验证

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 if else方法的几种不同类型。

提前致谢!

回答

2

阅读关于How to Make Dialogs的Swing教程中的部分,它实际上向您展示了如何轻松使用JOptionPane,因此您无需验证输入。

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

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

5

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

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 

}