java怎样限制文本框内容为数字?

解决方案 »

  1.   

    package   num;   
      import   javax.swing.*;   
      import   java.awt.*;   
      import   java.awt.event.*;   
      /**   
        *   @author   user   
        *   
        *   TODO   To   change   the   template   for   this   generated   type   comment   go   to   
        *   Window   -   Preferences   -   Java   -   Code   Style   -   Code   Templates   
        */   
      public   class   EnterNumber   extends   JFrame   
      {   
      JPanel   panel;   
      JTextField   enterNum;   
      public   EnterNumber()   
      {   
      enterNum=new   JTextField(5);   
      enterNum.addKeyListener(new   EnterAction());   
      panel=new   JPanel();   
      getContentPane().add(panel);   
      panel.add(enterNum);   
      addWindowListener(new   WindowAction());   
      pack();   
      setVisible(true);   
      setLocation(300,300);   
      }   
      class   WindowAction   extends   WindowAdapter   
      {   
      public   void   windowClosing(WindowEvent   win_e)   
      {   
      System.exit(0);   
      }   
      }   
      class   EnterAction   extends   KeyAdapter   
      {   
      public   void   keyPressed(KeyEvent   enter_e)   
      {   
      System.out.println(enter_e.getKeyCode());   
      if(enter_e.getKeyCode()<48||enter_e.getKeyCode()>57)   
      {   
      JOptionPane.showMessageDialog(null,"请填写数字");   
      enterNum.setText("");   
      return;   
      }   
      }   
      }   
      public   static   void   main(String   args[])   
      {   
      new   EnterNumber();   
      }   
      }   
      

  2.   

    JBuilder2005  怎样限制文本框内容为数字?如果不是数字的话,显示出一个消息框,文本框内容清空、
      

  3.   


    MaskFormatter mask = new MaskFormatter("##########");
    JFormattedTextField input = new JFormattedTextField(mask);input文本框中只能输入10位数字了。附带字符定义表:
    字符     描述
    #       任何有效数字,使用 Character.isDigit。 
    '       转义字符,用于避开任何具有特殊格式的字符。 
    U       任何字符 (Character.isLetter)。将所有小写字母映射为大写。 
    L       任何字符 (Character.isLetter)。将所有大写字母映射为小写。 
    A       任何字符或数字(Character.isLetter 或 Character.isDigit) 
    ?       任何字符 (Character.isLetter)。 
    *       所有字符。 
      

  4.   

    如果可以的话,也可以用JSpinner来替代。private JSpinner aSpinner;
    aSpinner.setEditor(new JSpinner.NumberEditor(aSpinner, "0000"));
      

  5.   

    我来吧.
       前面的我多看了好像多不怎么合意你看看我的要得不 ?
    可以用js来控制!
    代码:
    <script type="text/javascript">
        function isnum(){
          if(event.keyCode>=65){
             alert("你输入的必须是数字!");
             event.returnValue=false;
           }
        }
    </script>
    .....
    ......
    <input type="text" name="" onkeypress="isnum()">
      

  6.   

    楼上是采用键盘监听器来控制的,这种方法可能会有一些副作用,而且要考虑键盘时间的多样性,
    也就是没有从本质上解决问题。这是最好的方法是使用JTextField.getDocument().addDocumentListener(DocumentListene)),
    在DocumentListener中对JTextField中的内容就行检查并提示错误,是最好的。因为只要JTextField中的内容被改变,无论通过什么途径(键盘,ctrl + v,del等)都会有效。