限制JOptionPane.showInputDialog()的输入内容 我想让JOptionPane.showInputDialog()只能输入数字,但是我看了下JOptionPane类,没看懂,请大神们指教下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 南么阿弥陀佛~~~你写个方法来判断,先获取文本框中的值,再将它转为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();} 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 ); } }问题没有,只是说这样的话不够友好! 某大神说这种对话框其实就是在dialog上画JOptionPane,要我自己去理解JOptionPane得代码,就知道如何限制输入了,但是真心没能看懂! 大概明白你的需求了,按你的要求只能按照那位大神说的,自己去创造一个Dialog,用一个Jdialog的窗口,在启动的窗口失去焦点,在Jdialog上只放一个jtextfield,在控件的onkeyup或onchange事件里判断是否输的数字否就把值给删除。研究起来时间是否过长 每一次onkeyup事件之后判断输入的值,如果不是数字就不让输入呗 String s = new String(); while (!s.matches("\\d+")) { s = JOptionPane.showInputDialog(null, "hi", "heihei"); }利用正则表达式不断的循环判断是否全为数字 最终得到的s就是纯数字的 亲测有效 java关于readUTF()的阻塞问题的解决, 如何在eclipse里使用外部jar文件 求助…… 刚毕业的青鸟学生一月能拿什么价? 用JAVA生成一个EXE文件 一个错误不知道怎么解决 如何判断一个TXT是否符合每行由两列组成中间由TAB分隔 请问各位,到哪里可以载到JBuilder的使用教程?谢谢! 诸位大哥我想问问CLASSPATH在哪里设置呀!我真的太苯了,帮帮忙 请问什么插件能够使ie支持用java.swing写的applet 分享一个更改后的Execll工具类(上次上传的有bug)+散分 关于update超时设置
你写个方法来判断,先获取文本框中的值,再将它转为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();}
//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 );
}
}
问题没有,只是说这样的话不够友好!
while (!s.matches("\\d+")) {
s = JOptionPane.showInputDialog(null, "hi", "heihei");
}利用正则表达式不断的循环判断是否全为数字 最终得到的s就是纯数字的 亲测有效