2011-06-02 74 views
0

我有一個自定義文本字段,它只接受其中的數字。Java:在自定義組件文本字段中處理' - '字符

除了當我嘗試處理負號(-)時,一切正常。但不是當我已經有一個數字,想在前面加一個- -

public void processKeyEvent(KeyEvent ev) { 

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

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

當我開始用符號這工作得很好。

我真正需要的是一種獲取插入此字符的位置的方法,但我無法找到它。

任何想法?

+0

「有什麼想法?」修復這個大寫鍵。 – 2011-06-02 12:15:12

回答

3

您可以通過方法JTextComponent.getCaretPosition()獲取文本字段中的當前位置。

在文本組件上使用DocumentListenerInputVerifier完成此任務可能會更容易。

+0

Thx我剛剛失去了卡爾特。我曾經對DocumentListner進行過簡單的處理,但是對於我所做的事情來說,它感覺非常複雜,並且InputVerifier似乎只能控制用戶之後輸入的內容,而我只想簡單地創建一個數字字段。 – 2011-06-02 13:18:15

1

如果您的控件是TextComponent或從中衍生出來的,您可以嘗試使用getCaretPosition方法來檢查輸入是否在文本的開頭輸入。