пробовал несколько разных подходов к этому, но пока безуспешно. Просто подумал, не упускаю ли я чего-нибудь. У меня есть 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);
Спасибо
Фрэнк