我想让JOptionPane.showInputDialog()只能输入数字,但是我看了下JOptionPane类,没看懂,请大神们指教下!

解决方案 »

  1.   

    南么阿弥陀佛~~~
    你写个方法来判断,先获取文本框中的值,再将它转为int型,如果转不了就抛出异常,能转的话再判断它是不是符合你的要求,java中是没有内置的方法可以实现你这个功能的,如果你代码不会写,就再mi我~int examId=Integer.parseInt(JOptionPane.showInputDialog("请输入您的学号"));
    throw new NumberFormatException();
    String name=JOptionPane.showInputDialog("请输入您的姓名");
    for(int i=0;i<20;i++)
    if(name.charAt(i)<'a'||name.charAt(i)>'z') throw new nameInputException();//输入姓名不能有数字
    double score=Double.parseDouble(JOptionPane.showInputDialog("请输入您的成绩"));
    if(score<0||score>800) throw new scoreInputException();} 
      

  2.   

    String inputValue = JOptionPane.showInputDialog("请输入您要取款的金额");
    //long money = Integer.parseInt(inputValue);
    if(inputValue == null){
    return ;
    }
    if(!inputValue.equals("")){
    try{
    long money = Integer.parseInt(inputValue);
    if(money>999999){
    JOptionPane.showMessageDialog( null, 
    "  输入的金额数不能大于6位数","金额错误",JOptionPane.PLAIN_MESSAGE );
    }
    }catch(Exception e){
    JOptionPane.showMessageDialog( null, 
    "  输入金额错误或","金额错误",JOptionPane.PLAIN_MESSAGE );
    }
    }
    问题没有,只是说这样的话不够友好!
      

  3.   

    某大神说这种对话框其实就是在dialog上画JOptionPane,要我自己去理解JOptionPane得代码,就知道如何限制输入了,但是真心没能看懂!
      

  4.   

    大概明白你的需求了,按你的要求只能按照那位大神说的,自己去创造一个Dialog,用一个Jdialog的窗口,在启动的窗口失去焦点,在Jdialog上只放一个jtextfield,在控件的onkeyup或onchange事件里判断是否输的数字否就把值给删除。研究起来时间是否过长
      

  5.   

    每一次onkeyup事件之后判断输入的值,如果不是数字就不让输入呗
      

  6.   

    String s = new String();
    while (!s.matches("\\d+")) {
    s = JOptionPane.showInputDialog(null, "hi", "heihei");
    }利用正则表达式不断的循环判断是否全为数字 最终得到的s就是纯数字的 亲测有效