Java KeyListener не запускает JSpinner

пробовал несколько разных подходов к этому, но пока безуспешно. Просто подумал, не упускаю ли я чего-нибудь. У меня есть JSpinner, который является компонентом виджета DateSelector вместе с календарем. Я пытаюсь запустить метод проверки, если пользователь изменяет какой-либо текст в JSpinner вместо использования элемента управления Calendar или стрелок вверх и вниз JSpinner.

Вот различные подходы, которые я пробовал:

jSpinner1.addKeyListener(kl);

jSpinner1.getEditor().addKeyListener(kl);

((JSpinner.DefaultEditor) jSpinner1.getEditor().getTextField().addKeyListener(kl);

У кого-нибудь есть идеи относительно того, что я делаю неправильно? Спасибо

ОБНОВЛЕНИЕ м делаю не так? Спасибо

ОБНОВЛЕНИЕ м делаю не так? Спасибо

ОБНОВЛЕНИЕ Извините, я должен был сказать, что я уже добавил ChangeListener к JSpinnerDateModel, который прикреплен к JSpinner. Примерно так:

ChangeListener changeListener = new ChangeListener() {
        @Override
        public void stateChanged(ChangeEvent e) {
            dateChanged();
        }
    };

    jSpinnerDateModel.addChangeListener(changeListener);

    KeyListener keyListener = new KeyListener() {

        @Override
        public void keyTyped(KeyEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println(e.getKeyChar());
            dateChanged();
        }

        @Override
        public void keyReleased(KeyEvent e) {
            // TODO Auto-generated method stub

        }

    };
    ((JSpinner.DefaultEditor) jSpinner1.getEditor()).getTextField().addKeyListener(
            keyListener);

Спасибо

Фрэнк

5
задан Frank 6 October 2010 в 15:17
поделиться