J'ai un bouton dans une application Java Swing pour zoomer sur une sélection. Je mis en œuvre 3 façons de cliquer dessus:Comment détecter une combinaison de touches de modification lors d'un clic sur un bouton dans Java
- clic: effectue un zoom sur la sélection avec une animation étape par étape
- option-clic: ne une seule étape de zoom vers la sélection
- commande clic: effectue un zoom soudain sélection complète
Je voudrais mettre en œuvre les comportements inverses (c.-à-zoom de la sélection vers l'extérieur pour zoom-out complet) en outre, la touche Maj est, il serait comme ceci:
- shift-clic: effectue un zoom arrière entièrement avec une animation étape par étape
- shift-option-clic: fait un seul pas de zoom loin de la sélection
- décalage de commande, cliquez sur: zoome brusquement zoom complet -out
Je sais comment faire tout sauf le shift-option-click et le shift-command-click. Par exemple. Voilà comment je fais le zoom en une seule étape:
int stepMask = InputEvent.ALT_MASK;
if((e.getModifiers() & InputEvent.ALT_MASK) == stepMask) {
//do the single-step zoom
}
Mais je ne peux pas comprendre comment faire une combinaison de touches avec un clic. Tout ce que j'ai essayé ne fonctionne qu'avec une seule touche de modification. Comment puis-je détecter une combinaison de touches sur un bouton-clic?
Pourquoi ne simplifierait pas que pour si ((e.getModifiers() et (InputEvent. ALT_MASK | InputEvent.SHIFT_MASK)! = 0) { // code pour l'événement } – Grod
@Gordon car ce code s'exécuterait si l'on maintenait la touche alt _or_ shift enfoncée – JakeRobb
Non, ce n'est pas le cas, c'est un masque – Grod