黑马程序员技术交流社区

标题: GUI问题,键盘上排数字键盘和右边数字键盘操作不一样! [打印本页]

作者: 黑马一刘昭    时间: 2013-6-11 17:49
标题: GUI问题,键盘上排数字键盘和右边数字键盘操作不一样!
本帖最后由 黑马一刘昭 于 2013-6-11 20:27 编辑

目的:想在文本框中实现只可以添加数字别的符号添加不进来!
问题:对于我的第一个文本框,键盘上面一排的数字键可以完成输入,右边的数字键盘却会提示错误!
           对于我的第二个文本框,恰巧相反,键盘上面一排的数字键不可以可以完成输入,会提示错误,右边的数字键盘却可以完成输入!


疑惑了,同样的输入数字,莫非这两个数字键盘还不一样??奇怪的问题啊!!
其实不一样的也就是一行代码,但是两种都不可以保证上面一排数字键和右边数字键的同时输入!郁闷了,求人回复!!有金币送之!!!
  1. package june610;

  2. import java.awt.FlowLayout;
  3. import java.awt.Frame;
  4. import java.awt.TextField;
  5. import java.awt.event.KeyAdapter;
  6. import java.awt.event.KeyEvent;

  7. public class FrameTextDemo {
  8.         public static void main(String[] args) {
  9.                 Frame f = new Frame();
  10.                 f.setBounds(400, 300, 500, 400);
  11.                 TextField tf = new TextField("第一个",20);//第一个文本框,用名字区分下
  12.                 TextField tf2 = new TextField("第二个",20);
  13.                 f.add(tf);
  14.                 f.add(tf2);
  15.                 f.setLayout(new FlowLayout());
  16.                
  17.                 /**
  18.                  * 对于我的第一个文本框,键盘上面一排的数字键可以完成输入,
  19.                  * 右边的数字键盘却会提示错误!
  20.                  * 从右边键盘输入的话:
  21.                  * 错误(右边键盘输入错误,上排键盘输出正常)
  22.                  * 第一个文本框:5不是数字!
  23.                         第一个文本框:6不是数字!
  24.                         第一个文本框:7不是数字!
  25.                  */
  26.                
  27.                 tf.addKeyListener(new KeyAdapter(){//对第一个文本框添加键盘监听器
  28.                         public void keyPressed(KeyEvent e){
  29.                                 //其实真正的不一样也就在这行代码!
  30.                                 if(!(e.getKeyCode()>=KeyEvent.VK_0 && e.getKeyCode()<=KeyEvent.VK_9)){
  31.                                         System.out.println("第一个文本框:"+e.getKeyChar()+"不是数字!");
  32.                                         e.consume();
  33.                                 }
  34.                         }
  35.                 });
  36.                
  37.                 /**
  38.                  * 对于我的第二个文本框,恰巧相反,
  39.                  * 键盘上面一排的数字键不可以可以完成输入,会提示错误,
  40.                  * 而右边的数字键盘却可以完成输入!
  41.                  *   从右边键盘输入的话:
  42.                  * 错误(右边键盘输入正确,上排键盘输出出现这样的错误!)
  43.                  * 第二个文本框:5不是数字!
  44.                         第二个文本框:6不是数字!
  45.                         第二个文本框:6不是数字!
  46.                  */
  47.                 tf2.addKeyListener(new KeyAdapter(){//对第二个文本框添加键盘监听器
  48.                         public void keyPressed(KeyEvent e){
  49.                                 //其实真正的不一样也就在这行代码!
  50.                                 if(!(e.getKeyCode()>=95 && e.getKeyCode()<=105)){
  51.                                         System.out.println("第二个文本框:"+e.getKeyChar()+"不是数字!");
  52.                                         e.consume();
  53.                                 }
  54.                         }
  55.                 });
  56.                 f.setVisible(true);
  57.         }
  58. }
复制代码

作者: 陈雪琪    时间: 2013-6-11 19:38
哈哈  楼主这个问题我原来也发帖问过,问题几乎是 一样的。楼主可以看看。
http://bbs.itheima.com/thread-54557-1-1.html
具体的细节问题我也不是很懂 了
作者: 黑马一刘昭    时间: 2013-6-11 20:18
陈雪琪 发表于 2013-6-11 19:38
哈哈  楼主这个问题我原来也发帖问过,问题几乎是 一样的。楼主可以看看。
http://bbs.itheima.com/thread- ...

谢谢黑马姑凉!!么么哒!
作者: 黑马一刘昭    时间: 2013-6-11 20:19
小键盘和主键盘的数字生成的unicode码不同。不是大问题,有点绕!就这样吧!!黑马人加油!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2