求一個完整的JTextField的只能輸入數字或者小數的代碼

解决方案 »

  1.   

    这个只能去自己修改一下那个text的docDocument
      

  2.   

    只能对字段进行检查,一个JTextField是可以什么都输入的
      

  3.   

    给JTextField添加keyListener判断当前输入的字符试试,也可以使用JFormattedTextField 
      

  4.   

    哈哈   我已經搞定了 ~  用的是focusListener   分享一下  正則表達式是 (0|[1-9]\\d*)(\\.\\d)?(\\d*)*  
      

  5.   

    public void focusGained(FocusEvent e) {
    // TODO Auto-generated method stub
     String text=currencyTextField.getText();
       boolean b = Pattern.matches("(0|[1-9]\\d*)(\\.\\d)?(\\d*)*",text);
       if(!b)
       currencyTextField.setText("");
      
    }@Override
    public void focusLost(FocusEvent e) {
    // TODO Auto-generated method stub
     String text=currencyTextField.getText();
         System.out.println("text:"+text);
         boolean b = Pattern.matches("(0|[1-9]\\d*)(\\.\\d)?(\\d*)*",text);
         System.out.println("b:"+b);
         if(!b)
          currencyTextField.setText("");
    }