我有一个自定义文本字段,只接受其中的数字。
除非我尝试处理否定(-
)符号,否则一切正常。
public void processKeyEvent(KeyEvent ev) {
char c = ev.getKeyChar();
[...]
if(c == '-' && getDocument().getLength() > 0 ){
ev.consume();
}else{
super.processKeyEvent(ev);
}
}
当我开始使用该标志时,此功能正常 - 但是当我已经拥有数字并希望在前面添加-
时,这种情况就不行了。
我真正需要的是一种获取插入此角色的位置的方法,但我找不到。
有什么想法吗?
答案 0 :(得分:3)
您可以通过方法JTextComponent.getCaretPosition()
获取文本字段中的当前位置。
使用文本组件上的DocumentListener
或InputVerifier
可能更容易完成此任务。
答案 1 :(得分:1)
如果您的控件是TextComponent
或从中导出,您可以尝试使用getCaretPosition
方法检查输入是否在文本开头输入。