限制JOptionPane.showInputDialog()的输入内容

潍一 2013-01-29 10:29:40
我想让JOptionPane.showInputDialog()只能输入数字,但是我看了下JOptionPane类,没看懂,请大神们指教下!
...全文
737 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Danvie 2013-02-02
  • 打赏
  • 举报
回复
引用 11 楼 kiss8745 的回复:
引用 7 楼 littlebirdfirst 的回复:每一次onkeyup事件之后判断输入的值,如果不是数字就不让输入呗 按照你说的 思路有了,谢谢!
相互进步嘿嘿
潍一 2013-02-02
  • 打赏
  • 举报
回复
引用 7 楼 littlebirdfirst 的回复:
每一次onkeyup事件之后判断输入的值,如果不是数字就不让输入呗
按照你说的 思路有了,谢谢!
潍一 2013-02-02
  • 打赏
  • 举报
回复
引用 8 楼 blue1244 的回复:
Java code ? 1234 String s = new String(); while (!s.matches("\\d+")) { s = JOptionPane.showInputDialog(null, "hi", "heihei"); } 利用正则表达式不断的循环判断是否全为数字 最终得到的s就是纯数字的 亲测有效
我的目的不是这个,我是想让无法输入字符,只能输入数字。 我表达能力这么差嘛?
风吹草地pp凉 2013-01-30
  • 打赏
  • 举报
回复
		String s = new String();
		while (!s.matches("\\d+")) {
			s = JOptionPane.showInputDialog(null, "hi", "heihei");
		}
利用正则表达式不断的循环判断是否全为数字 最终得到的s就是纯数字的 亲测有效
zxj828282 2013-01-30
  • 打赏
  • 举报
回复
top top top
  • 打赏
  • 举报
回复
没搞定把代码发出来看看哪里你搞不明白的。
潍一 2013-01-29
  • 打赏
  • 举报
回复
引用 1 楼 abcmsnet 的回复:
南么阿弥陀佛~~~ 你写个方法来判断,先获取文本框中的值,再将它转为int型,如果转不了就抛出异常,能转的话再判断它是不是符合你的要求,java中是没有内置的方法可以实现你这个功能的,如果你代码不会写,就再mi我~ int examId=Integer.parseInt(JOptionPane.showInputDialog("请输入您的学号")); throw……
我现在是这样做的,输入错误就跳出个对话框提示,但是感觉这样还是不行!
  • 打赏
  • 举报
回复
南么阿弥陀佛~~~ 你写个方法来判断,先获取文本框中的值,再将它转为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(); }
Danvie 2013-01-29
  • 打赏
  • 举报
回复
每一次onkeyup事件之后判断输入的值,如果不是数字就不让输入呗
  • 打赏
  • 举报
回复
大概明白你的需求了,按你的要求只能按照那位大神说的,自己去创造一个Dialog,用一个Jdialog的窗口,在启动的窗口失去焦点,在Jdialog上只放一个jtextfield,在控件的onkeyup或onchange事件里判断是否输的数字否就把值给删除。研究起来时间是否过长
潍一 2013-01-29
  • 打赏
  • 举报
回复
引用 3 楼 abcmsnet 的回复:
没搞定把代码发出来看看哪里你搞不明白的。
某大神说这种对话框其实就是在dialog上画JOptionPane,要我自己去理解JOptionPane得代码,就知道如何限制输入了,但是真心没能看懂!
潍一 2013-01-29
  • 打赏
  • 举报
回复
引用 3 楼 abcmsnet 的回复:
没搞定把代码发出来看看哪里你搞不明白的。
			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 );	
				}
			}
问题没有,只是说这样的话不够友好!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧