JApplet - алфавит не допускается - PullRequest
1 голос
/ 20 февраля 2012

это мой код, который написан внутри моего апплета

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 голосов
/ 20 февраля 2012
  1. Используйте DocumentListener для прослушивания изменений внутри JTextComponents ,
  2. Не использовать KeyListener , этот Listener предназначен для доисторических компонентов AWT, для Swing JComponents ( JApplet ) использовать KeyBindings
...