Comment détecter ctrl-f dans mon application SWT

J'ai écrit une SWT de l'INTERFACE utilisateur qui a pour principale fonction de l'affichage du texte dans un StyledText de contrôle. Je veux ajouter un gestionnaire pour Ctrl+Fde sorte que, lorsque cette touche, l'accent est mis d'une zone de recherche. J'ai essayé d'utiliser le code suivant pour détecter la pression de touche.

sWindow = new Shell();
...
sWindow.getDisplay().addFilter(SWT.KeyDown, new Listener()
{
  @Override
  public void handleEvent(Event e)
  {
    System.out.println("Filter-ctrl: " + SWT.CTRL);
    System.out.println("Filter-mask: " + e.stateMask);
    System.out.println("Filter-char: " + e.character);
  }
});

Je m'attendais à ce que lorsque j'ai appuyé sur Ctrl+f je voudrais voir le résultat suivant:

Filter-ctrl: 262144
Filter-mask: 262144
Filter-char: f

Cependant, dans la pratique, j'ai fait voir la suite.

Filter-ctrl: 262144
Filter-mask: 262144
Filter-char: <unprintable char - displayed as a box in eclipse console>

J'ai deux questions:

  • Est De L'Affichage.addFilter(...) la meilleure façon d'ajouter un raccourci global? J'ai essayé d'Affichage.addListener(...) mais ce n'ai pas eu de manifestations à tous.
  • Pourquoi je ne reçois pas la touche de caractère lorsque je suis maintenant Ctrl? Quand j'ai maintenez la touche alt ou maj-je obtenir attendus masque et la touche de caractère.

source d'informationauteur mchr