在jtextfield中怎么样才能使我敲的键盘按键字符不显示在文本框中
就是说 比如我要显示数字 而对输入的字母不显示 也就是敲击字母按键的时候不发生任何事情 
这个怎么实现 谢谢

解决方案 »

  1.   

    JTextField textfield = new JTextField(20);
    AbstractDocument document = (AbstractDocument) textfield.getDocument();
    document.setDocumentFilter(new DocumentFilter() {
    public void insertString(FilterBypass fb, int offset, String string,
    AttributeSet attr) throws BadLocationException
    {
    int len = string.length();
    for (int i = 0; i < len; i++) {
    char c = string.charAt(i);
    if (!Character.isDigit(c)) {
    Toolkit.getDefaultToolkit().beep();
    return;
    }
    }
    super.insertString(fb, offset, string, attr);
    }

    public void replace(FilterBypass fb, int offset, int length, String text, 
    AttributeSet attrs) throws BadLocationException
    {
    int len = text.length();
    for (int i = 0; i < len; i++) {
    char c = text.charAt(i);
    if (!Character.isDigit(c)) {
    Toolkit.getDefaultToolkit().beep();
    return;
    }
    }
    super.replace(fb, offset, length, text, attrs);
    }
    });
      

  2.   

    两种方法:
    1 实现DocumentListener 接口,自己处理数字和字母
    2 用JFormattedTextField 来实现,自己找一下demo看看