Для большинства графических интерфейсов, которые я использовал, когда элемент управления, содержащий текст, получает фокус, выбирается все содержимое элемента управления. Это означает, что если вы только начинаете печатать, вы полностью заменяете прежнее содержимое.
Пример: у вас есть управление вращением, которое инициализируется нулевым значением. Перейдите на него и введите «1». Значение в элементе управления теперь равно 1.
С Swing этого не происходит. Текст в элементе управления не выделен, и карат появляется на том или ином конце существующего текста. Продолжая приведенный выше пример:
С помощью Swing JSpinner, когда вы переходите на элемент управления вращением, карат находится слева. Вы вводите «1», и значение в элементе управления теперь равно 10.
Это приводит меня (и моих пользователей) к стене, и я бы хотел это изменить. Что еще более важно, я хотел бы изменить его глобально, чтобы новое поведение применялось к JTextField, JPasswordField, JFormattedTextField, JTextArea, JComboBox, JSpinner и так далее. Я нашел единственный способ сделать это, чтобы добавить FocusAdapter к каждому элементу управления и переопределить метод focusGained () для выполнения правильных действий [tm].
Должен быть более простой и менее хрупкий способ. Пожалуйста?
РЕДАКТИРОВАТЬ: один дополнительный кусок информации для этого конкретного случая. Форма, с которой я работаю, была сгенерирована с помощью дизайнера форм Idea. Это означает, что я обычно не пишу код для создания компонентов. Можно сказать Idea, что вы хотите создать их самостоятельно, но я бы хотел избежать этого.
Девиз: Все хорошие программисты в основном ленивы.