swt中text只能输入数字的完美解决

来源:互联网 发布:ug数控车编程视频教程 编辑:程序博客网 时间:2024/05/22 00:11

搞java有两年了,技术上一直也不怎么样,自己开发点东西,这个可是自己好不容易搞定的,希望能给后来人帮助

 

text.addVerifyListener(new VerifyListener() {
      public void verifyText(VerifyEvent event) {
       event.doit = false;
       char myChar = event.character;
       if(text.getText().indexOf(".")==-1){//没有小数点时,可以输入小数点。(因为此验证是确保一次只能输入一个字符。)
        if (myChar=='0' || myChar=='1' || myChar=='2' || myChar=='3' || myChar=='4' || myChar=='5'|| myChar=='6' || myChar=='7' || myChar=='8' || myChar=='9' || myChar == '/b' ||myChar == '.') {
         event.doit = true;
        }
       }else{//只要有小数点,就不能输入小数点。
        if (myChar=='0' || myChar=='1' || myChar=='2' || myChar=='3' || myChar=='4' || myChar=='5'|| myChar=='6' || myChar=='7' || myChar=='8' || myChar=='9'  || myChar == '/b') {
         event.doit = true;
        }//小数点后够两位,输入无效
        if(text.getText().substring(text.getText().indexOf(".")+1).length()>1){
          event.doit=false;
        }
       }//退格有效
       if(myChar == '/b')
        event.doit=true;
      }
      }
     );

原创粉丝点击