Это нехватка колебаний, и, по моему мнению, JSpinner должен следовать JComboBox в предоставлении следующего доступа к базовому текстовому полю:
JComboBox.getEditor().getEditorComponent()
Изучив источник J1.7, я обнаружил, что с помощью
можно добиться почти одинаковых результатов.
JSpinner.getEditor().getComponent(0)
Поэтому вы можете «взломать» слушателя следующим образом:
JSpinner.getEditor().getComponent(0).addKeyListener(...)
Очевидно, что это зависит от реализации Swing «под прикрытием» и работает как в J1.7, но нет никакой гарантии, что это работает для других версий в будущем или в прошлом.
Наслаждайтесь.
EDIT
или, если редактор является экземпляром DefaultEditor, вы можете привести его как таковой и использовать 'getTextField ()'. Было бы удобно, если бы это было определено в интерфейсе.