Java:处理自定义组件文本字段中的“ - ”字符

时间:2011-06-02 11:35:05

标签: java components keyevent

我有一个自定义文本字段,只接受其中的数字。

除非我尝试处理否定(-)符号,否则一切正常。

public void processKeyEvent(KeyEvent ev) {

   char c = ev.getKeyChar();
   [...]

   if(c == '-' && getDocument().getLength() > 0 ){ 
      ev.consume();
   }else{
      super.processKeyEvent(ev);
   }
}

当我开始使用该标志时,此功能正常 - 但是当我已经拥有数字并希望在前面添加-时,这种情况就不行了。

我真正需要的是一种获取插入此角色的位置的方法,但我找不到。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您可以通过方法JTextComponent.getCaretPosition()获取文本字段中的当前位置。

使用文本组件上的DocumentListenerInputVerifier可能更容易完成此任务。

答案 1 :(得分:1)

如果您的控件是TextComponent或从中导出,您可以尝试使用getCaretPosition方法检查输入是否在文本开头输入。