Java:处理';-';自定义组件文本字段中的字符
我有一个自定义文本字段,只接受其中的数字 除了我尝试处理负号(Java:处理';-';自定义组件文本字段中的字符,java,components,keyevent,Java,Components,Keyevent,我有一个自定义文本字段,只接受其中的数字 除了我尝试处理负号(-)之外,一切都正常 当我从符号开始时,这可以很好地工作,但当我已经有了数字并且想在前面添加一个-时就不行了 我真正需要的是一种方法来获得这个角色插入的位置,但我找不到 有什么想法吗?您可以通过该方法获得文本字段中的当前位置 在文本组件上使用或可能更容易完成此任务。您可以通过该方法获取文本字段中的当前位置 在文本组件上使用a或a可能更容易完成此任务。如果控件是a或派生自a,则可以尝试使用getCaretPosition方法检查是否在文
-
)之外,一切都正常
当我从符号开始时,这可以很好地工作,但当我已经有了数字并且想在前面添加一个-
时就不行了
我真正需要的是一种方法来获得这个角色插入的位置,但我找不到
有什么想法吗?您可以通过该方法获得文本字段中的当前位置
在文本组件上使用或可能更容易完成此任务。您可以通过该方法获取文本字段中的当前位置
在文本组件上使用a或a可能更容易完成此任务。如果控件是a或派生自a,则可以尝试使用
getCaretPosition
方法检查是否在文本开头键入输入。如果控件是a或派生自a,您可以尝试使用getCaretPosition
方法检查输入是否在文本开头键入。“有想法吗?”修复caps键。“有想法吗?”修复caps键。Thx我只是缺少了carret。我已经协调了DocumentListner,但是我所做的事情感觉非常复杂,InputVerifier似乎只控制用户以后输入的内容,而我只想创建一个数字字段。Thx我只是错过了carret。我对DocumentListner进行了协调,但对于我所做的工作来说,它感觉非常复杂,InputVerifier似乎只控制用户随后输入的内容,而我只想创建一个数字字段。
public void processKeyEvent(KeyEvent ev) {
char c = ev.getKeyChar();
[...]
if(c == '-' && getDocument().getLength() > 0 ){
ev.consume();
}else{
super.processKeyEvent(ev);
}
}