考虑一个JFormattedTextField(或任何真正的JTextComponent),其中有一个前缀和一个后缀显示在该字段的实际"文本"周围.
例如,double 3.5将是字符串(通过格式化)"3.50",其前面是前缀"$",后缀"",显示文本为"$ 3.50".
显然,这很容易做到.但是,仍允许用户选择前缀/后缀中的文本,因此可以想象删除部分或全部前缀/后缀.我希望限制用户,使得根本不能选择前缀/后缀(仍然是文本字段的一部分,因此没有JLabel).我几乎可以使用CaretListener(或通过覆盖setCaretPosition/moveCaretPosition)来完成此操作,这会阻止Ca选择整个字段,并且它会阻止使用箭头键移动到前缀/后缀中.但是,鼠标拖动和移位箭头键仍允许选择移动到这些受限区域.
有任何想法吗?