Seleção limitada em um JTextField / JTextComponent?

Considere um JFormattedTextField (ou qualquer JTextComponent, na verdade) em que exista um prefixo e um sufixo exibidos ao redor do "texto" real do camp

Por exemplo, o duplo 3.5 seria a String (via formatação) "3.50" em torno do qual seria o prefixo "!$1$!quot; e o sufixo "", para um texto de exibição de "$ 3,50".

Claramente, isso é simples de fazer. No entanto, o usuário ainda pode selecionar texto dentro do prefixo / sufixo, para que possa excluir parte ou todo o prefixo / sufixo. Eu preferiria que o usuário fosse restrito de forma que o prefixo / sufixo não possa ser selecionado (enquanto ainda faz parte do campo de texto, portanto, não há JLabels). Quase posso fazer isso com um CaretListener (ou substituindo setCaretPosition / moveCaretPosition), que impede que um C-a selecione o campo inteiro e impede o uso das teclas de seta para mover para o prefixo / sufixo. No entanto, as teclas de arrastar e pressionar a seta com a tecla Shift ainda permitem que a seleção se mova para essas áreas restrita

Alguma ideia

questionAnswers(1)

yourAnswerToTheQuestion