2017-09-11 5 views

Répondre

1

Vous pouvez utiliser pour ajouter un écouteur qui est appelé pour tous les événements de la souris vers le bas dans le code SWT la méthode addFilter de Display:

Display display = Display.getDefault(); 

display.addFilter(SWT.MouseDown, new Listener() 
    { 
    @Override 
    public void handleEvent(Event event) 
    { 
     System.out.println("event " + event); 

     if (event.widget instanceof Control) { 
     Control control = (Control)event.widget; 
     System.out.println("display " + control.toDisplay(event.x, event.y)); 
     } 
    } 
}); 

Les Event passés à handleEvent a x et y champs pour la souris vers le bas event - ceux-ci sont relatifs au contrôle contenant l'événement. Le contrôle est donné dans le champ widget. J'ai montré le code pour convertir ces valeurs en valeurs d'affichage absolues.

Remarque: Cela ne fonctionne que pour les événements de souris vers le bas dans l'application en cours et uniquement pour le code SWT. Dans le passé Lotus Notes utilisait beaucoup de code natif où cela ne fonctionnerait pas, je ne sais pas si c'est toujours le cas.

+0

Merci pour votre réponse. J'ai essayé dans la classe 'ActionSetHandler' qui implémente' IWorkbenchWindowActionDelegate' mais en obtenant quelques erreurs. J'ai mis à jour ma question pls jeter un coup d'oeil. –

+0

Votre importation 'Event' est incorrecte. Il doit être 'org.eclipse.swt.widgets.Event' –

+0

Merci Greg, c'est bien. Est-il possible d'obtenir l'info-bulle de l'image cliquée? J'ai inclus l'écran dans ma question. Parce que, il diffère en fonction de la taille des moniteurs. –