2009-10-14 6 views
0

Mon application est multi-plateforme, d'où l'utilisation de SWT. Je peux facilement surveiller la touche Mac Commande/Fleur lorsque l'application fonctionne en utilisant SWT (SWT.COMMAND en appuyant sur une touche).Comment vérifier que la touche COMMAND est maintenue enfoncée Java/SWT au démarrage sous Mac OS X

Je veux savoir si la touche de commande est enfoncée et maintenue enfoncée lorsque l'application s'ouvre. J'ai trouvé quelques exemples ici, mais ceux-ci étaient pour le verrouillage des majuscules, j'ai besoin de la clé de commande. Des suggestions dans le code Java ou SWT? Merci.

Répondre

1

Il ne semble pas possible de détecter cela via Java ou SWT. Mon travail consistait à ouvrir un écran de démarrage lorsque l'application se chargeait. De cette façon, je peux demander à l'utilisateur de cliquer sur n'importe quelle touche pour continuer, et quand c'est le cas, je demande les touches COMMAND et SHIFT. Si l'un ou l'autre est pressé, ils ne peuvent pas continuer.

0

Je ne connais pas les constantes exactes de la touche de commande, mais je peux vous aider à la conception:

vous voulez voir si une touche est maintenue avant que le code de l'application est exécutée (ou pendant). J'envisager d'utiliser l'une des deux méthodes ci-dessous:

1) ont votre principale méthode appeler une méthode qui voit si la touche est enfoncée (ou intégrer à droite dans ce code qui vérifie)

ou deuxième, que je pense est mieux: 2) au démarrage, créer un fil séparé qui vérifie (en boucle de sommeil serré) qui vérifie si la clé est enfoncée. Si c'est le cas, utilisez une forme de communication inter-processus (structure de données partagée, notification d'objet, etc.) pour informer le thread principal que la touche a été enfoncée et invoquer le code que vous souhaitez lorsque la touche est enfoncée.

J'espère que cela a aidé.

Questions connexes