【问题标题】:JApplet - alphabet will not allowedJApplet - 不允许使用字母表
【发布时间】:2012-02-20 17:30:57
【问题描述】:

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

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";
        }
    }
}

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

【问题讨论】:

  • 1) 请对代码块使用一致且符合逻辑的缩进。 2) 为了尽快获得更好的帮助,请发帖SSCCE

标签: java swing validation japplet


【解决方案1】:
  1. 使用DocumentListener 监听JTextComponents 内部的变化,
  2. 不要使用KeyListener,这个Listener被指定用于史前AWT组件,对于Swing JComponentsJApplet)使用KeyBindings

【讨论】:

  • KeyBindings 的示例,我可以参考我的问题。检查输入是否为字母。
  • 使用 DocumentListener,你不得不忘记考虑 JTextComponents 的 KeyBindings
  • 我找到了 KeyBindings 的帮助,stackoverflow.com/questions/7976209/…,但我不这么认为,它会解决我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
相关资源
最近更新 更多