Заставить JSpinner выделять текст при фокусировке
Я хотел бы изменить поведение JSpinner, чтобы при нажатии на текст он выделялся. Это облегчает замену поля желаемым значением. К сожалению, я могучтобы заставить поведение работать, вместо этого он просто вставляет курсор в текст, не выбирая то, что уже есть.
Я попытался добавить фокус слушателя как к самому JSpinner, так и к самой текстовой области, с помощью((DefaultEditor) this.getEditor()).getTextField()
Тем не менее, ни один из них, кажется, не имеет ожидаемого эффекта. Мой код (для самого JSpinner) выглядит следующим образом:
spinner.addFocusListener(new FocusAdapter(){
@Override
public void focusGained(FocusEvent e) {
((DefaultEditor) ((JSpinner) e.getSource()).getEditor()).getTextField().selectAll();
}
});
Я не уверен, в чем проблема. Если это имеет значение, ям под управлением Mac OS 10.7.5 и Java 6u43.
РЕДАКТИРОВАТЬ: я положилSystem.out.println
в самом начале метода focusGained и обнаружил, что он никогда не вызывался. Таким образом, похоже, что фокус на JSpinner нет регистрация. Опять же, я попытался поместить focusAdpater как на счетчик, так и на текстовое поле (но не одновременно).