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. JTextComponents内の変更をリッスンするにはDocumentListenerを使用します。
  2. KeyListenerを使用しないでください。これListenerは、有史以前の AWT コンポーネント用に指定されています。Swing JComponents ( JApplet ) にはKeyBindingsを使用します。
于 2012-02-20T17:40:09.963 に答える