public void keyTyped(KeyEvent e)
{
   int eCode = e.getKeyCode();
   
   if (eCode == KeyEvent.VK_BACK_SPACE ||  //删除键
       eCode < KeyEvent.VK_0 || 
       eCode > KeyEvent.VK_9) { 
       e.consume();
   }
}

解决方案 »

  1.   

    getKeyCode()而不是getKeyChar
    利用KeyEvent.VK_XXX来判断
      

  2.   

    if (eCode != KeyEvent.VK_BACK_SPACE)
      

  3.   

    我就是把输入的字符保存在一个数组里,当if (eCode == KeyEvent.VK_BACK_SPACE)的时候,就去掉数组的最后一个位置,是不是这样?可是数组里去掉了,界面上怎么显示呢?
      

  4.   

    char c = e.getKeyChar();
    if(c == KeyEvent.VK_BACK_SPACE || c<'0'|| c>'9')
    {
    e.consume();
    if(jtf.getText().trim().equals(""))
    {}
    else
             {
    if(c == KeyEvent.VK_BACK_SPACE)
    {
    String s = jtf.getText().trim();
    s = s.substring(0,s.length()-1);
    jtf.setText("");
    jtf.setText(s);
    }
    }
    }
    自己已经搞定,把我的代码给大家看看,中午结贴,谢谢上面高手的指点
      

  5.   

    你是用JTextField吧, 如果这样的话, 建议你看看Document类, 限制TextField的输入内容不是捕捉键事件来作的.
      

  6.   

    jtf.setText("");
    jtf.setText(s);要先清空后才能再赋值?
    直接jtf.setText(s)不行?