TextFiled怎样只能让其输入数字

  某烤白马问我怎样在一个Java窗体里面只能输入数字。这个问题我以前在做Web项目的时候碰到过,是采用的JS监听键盘的方式做的。但是在窗体里面怎么做,还没有做过。

  不知道很简单,百老师跟谷老师都是好老师。于是找了下。

  在CSDN上面看到有人有同样的问题,点此查看。看了下知道了原来可以采用PlainDocument接口的方式实现,但是我看了下代码,好像是输入之后再去做判断,如果不是汉字就去掉该字符。好像有点不符合需求。另外一个方式是采用监听器的方式。看了下,参照他的代码写了一段自己的代码。

 

ExpandedBlockStart.gif 监听键盘事件代码
     private   class  NumListener  implements  KeyListener {
        
public   void  keyPressed(KeyEvent e) {
            
//  TODO Auto-generated method stub

        }

        
public   void  keyReleased(KeyEvent e) {
            
//  TODO Auto-generated method stub
            
        }

        
public   void  keyTyped(KeyEvent e) {
            
            
char  code  =  e.getKeyChar();
            
            
if  (isNumber(code)){
                
return ;
            } 
else  {
                e.consume();
            }
        }


    }

 

对比一下CSDN上那位兄弟的回答,我这里少了很多,不知道会不会有什么问题。说实话,我不明白他为什么要判断输入框的类型。而判断是否是数字的代码我觉得还可以采用正则表达式,也改造了一下。

 

ExpandedBlockStart.gif 判断是否为数字
     private   static  Pattern NUM_PATTERN  =  Pattern.compile( " \\d* " );
        
protected   boolean  isNumber( char  code) {
//             if ((code == '0') || (code == '1') || (code == '2')
//                     || (code == '3') || (code == '4') || (code == '5')
//                     || (code == '6') || (code == '7') || (code == '8')
//                     || (code == '9')){
//                 return true;
//             }
            Matcher matcher  =  NUM_PATTERN.matcher(String.valueOf(code));
            
if  (matcher.matches()){
                
return   true ;
            }

            
return   false ;
        }

 

 

代码还是需要完善,还有对于复制粘贴没有处理。

 

转载于:https://www.cnblogs.com/docmao/archive/2010/01/07/1641419.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值