2015-12-02 3 views
0

У меня возникает проблема при получении текстового значения текста SWT. Моя реквизиция заключается в проверке содержимого текста length.user не следует вводить более трех символов в текстовом поле. Я написал код ниже. Проблема заключается в , когда я вводим первое значение как 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

Смежные вопросы