Comment faire de la validation de l'entrée d'un widget SWT (Texte)

Comment pouvez ajouter la validation d'un SWT widget? E. g. Text?

J'ai essayé les deux suivants (disponibles en ligne):

txtPort.addListener(SWT.Verify,new Listener() {  
  @Override  
  public void handleEvent(Event event) {  
      String port = ((Text)event.widget).getText();  
      try{  
          int portNum = Integer.valueOf(port);  
          if(portNum <0 || portNum > 65535){  
                event.doit = false;  
         }  
      }  
      catch(Exception ex){  
         event.doit = false;  
      }                 
   }  
});  

Aussi:

txtPort.addVerifyListener(new VerifyListener() {  
   @Override  
   public void verifyText(VerifyEvent e) {  
     String port = ((Text)e.widget).getText();  
      try{  
         int portNum = Integer.valueOf(port);  
         if(portNum <0 || portNum > 65535){  
             e.doit = false;  
          }  
      }  
      catch(Exception ex){  
          e.doit = false;  
      }  
   }  
});     

Si j'ajoute un caractère, le curseur stucks et je ne peux même pas le supprimer.

Même si je viens de tout supprimer la première fois, le curseur également stucks et je ne peux pas écrire quoi que ce soit d'autre.

Ce que je suis bien ici? Comment suis-je censé faire de la validation de Text?

Dans ce cas, je ne veux accepter un certain nombre siégeant en tant que port.

InformationsquelleAutor Cratylus | 2012-10-04