Рассмотрим JFormattedTextField (или любой JTextComponent, на самом деле), в котором есть префикс и суффикс, отображаемый вокруг фактического «текста» поля.
Например, двойным 3,5 будет строка (через форматирование) «3,50», вокруг которой будет префикс «$» и суффикс «», для отображаемого текста «$ 3,50».
Понятно, что это просто сделать. Тем не менее, пользователю все еще разрешено выбирать текст в префиксе / суффиксе, поэтому он может удалить часть или весь префикс / суффикс. Я бы предпочел, чтобы пользователь был ограничен таким образом, чтобы префикс / суффикс не мог быть выбран вообще (хотя он все еще является частью текстового поля, поэтому нет JLabels). Я почти могу сделать это с помощью CaretListener (или путем переопределения setCaretPosition / moveCaretPosition), который не позволяет C-a выбрать все поле, и не позволяет использовать клавиши со стрелками для перехода в префикс / суффикс. Тем не менее, перетаскивание мышью и клавиши со стрелками вправо позволяют выделению перемещаться в эти ограниченные области.
Есть идеи?