开发者

Java: Handling ' - ' character in custom component text field

开发者 https://www.devze.com 2023-03-10 09:28 出处:网络
I have a custom text field that only accepts numbers in it. Everything works fine except when I try to handle the negative (-) sign.

I have a custom text field that only accepts numbers in it.

Everything works fine except when I try to handle the negative (-) sign.

public void processKeyEvent(KeyEvent ev) {

   char c = ev.getKeyChar();
  开发者_StackOverflow [...]

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

This works fine when I start with the sign - but not when I already have numbers and want to add a - in front.

What I really need is a way to get the position at which this character is inserted but I can't find that.

Any ideas?


You can get the current position inside a text field via the method JTextComponent.getCaretPosition().

It might be easier to fulfill this task with either a DocumentListener or an InputVerifier on your text component.


If your control is a TextComponent or derived from that, you could try using the getCaretPosition method to check whether or not the input is being typed at the start of the text.

0

精彩评论

暂无评论...
验证码 换一张
取 消