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