0

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

一切正常,除非我尝试处理负 ( -) 号。

public void processKeyEvent(KeyEvent ev) {

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

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

当我从符号开始时这很好用 - 但当我已经有数字并想-在前面添加一个时就不行了。

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

有任何想法吗?

4

2 回答 2

3

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

使用文本组件上的aDocumentListener或 an可能更容易完成此任务。InputVerifier

于 2011-06-02T11:40:19.397 回答
1

如果您的控件是 aTextComponent或派生自该控件,则可以尝试使用该getCaretPosition方法检查是否在文本开头键入了输入。

于 2011-06-02T11:44:32.927 回答