2015-12-02 79 views
0

我在獲取SWT文本的文本值時遇到問題。 我的要求是驗證文本內容的長度。用戶不應該在文本字段中輸入超過3個字符的 。我寫了下面的代碼。問題是 當我輸入第一個值爲1時,它給我空值。 下一次當輸入值2,它給我的1沒有得到swt文本字段的內容長度

text.addVerifyListener(new VerifyListener() { 

     @Override 
     public void verifyText(VerifyEvent e) { 
      System.out.println("verifyText()"); 

      Text text = (Text) e.getSource(); 
      String text2 = text.getText(); 

}}

繼值是我的代碼。如何解決這個問題?

回答

1

您可以使用Text#setTextLimit(int)限制Text中允許的字符數。

但是,如果你想要做更多的驗證,這是你可以做什麼:

text.addVerifyListener(new VerifyListener() { 
    @Override 
    public void verifyText(VerifyEvent e) { 
     String oldS = ((Text)e.widget).getText(); 
     String newS = oldS.substring(0, e.start) + e.text + oldS.substring(e.end); 

     if(newS.length() > LIMIT) 
      e.doit = false; 
    } 
}); 
+0

您好感謝。它工作正常。還有一個問題,如果我想更新verifyText()方法中的文本字段,我該怎麼辦?例如,如果大小1,那麼我必須顯示文本是100.所以我的問題是有可能在這裏更新自己,而用戶進入? – user414967

+0

@ user414967你爲什麼不嘗試? – Baz