1

这是我的代码,写在我的小程序里面

KeyListener keyListener = new KeyListener() 
{
    public void keyPressed(KeyEvent keyEvent) 
    {
        validate valid=new validate();
        valid.errorMessage(txt_district_id, keyEvent);
    }

    public void keyReleased(KeyEvent keyEvent) 
    {       
    }

    public void keyTyped(KeyEvent keyEvent) 
    {       
    }

};
txt_district_id.addKeyListener(keyListener);

验证类的代码是

public class validate
{
    public String errorMessage(KeyEvent keyEvent,JTextField txt)
    {
        int keyCode = keyEvent.getKeyCode();
        String keyText = KeyEvent.getKeyText(keyCode);
        //msg.setText(title + " : " + keyText + " / " + keyEvent.getKeyChar());
        if(keyCode > 47 && keyCode < 58)
        {
            txt.setEditable(true);
        }
        else
        {
            txt.setEditable(false);
            return "Only Numeric Value Accepted";
        }
    }
}

一切正常,但问题是每当用户输入任何字母时,文本字段都会被禁用,这就是我的问题。我的意思是,无论如何都不能输入字母表并且应该启用文本字段。提前致谢。!!

4

1 回答 1

2
  1. 使用DocumentListener监听JTextComponents内部的变化,
  2. 不要使用KeyListener,这Listener是为史前 AWT 组件指定的,对于Swing JComponents ( JApplet ) 使用KeyBindings
于 2012-02-20T17:40:09.963 回答