2008-10-12 10 views
0

J'utilise public boolean mouseDown(Event ev, int x, int y) pour détecter un clic de la souris.
Je peux distinguer le bouton droit de la souris (ev.metaDown() est vrai) et le gauche et le milieu.Comment récupérer le bouton du milieu de la souris dans Java?

Comment différencier le bouton gauche du bouton central? Ou si c'est impossible avec mouseDown, que dois-je utiliser?

+0

De quel GUI parlons-nous: SWT, Swing, ou (classique) AWT? – Powerlord

+0

awt (ceci est d'obtenir 10 caractères) – Burkhard

Répondre

1

Essayez d'utiliser ALT_MASK:

Ce drapeau indique que la touche Alt était enfoncée lorsque l'événement est survenu. Pour les événements souris, ce drapeau indique que le bouton central de la souris a été enfoncé ou relâché.

Ainsi, votre code peut être:

if (ev.modifiers & Event.ALT_MASK != 0) { 
    // middle button was pressed 
} 

Bien sûr, tout cela suppose que vous avez un très bonne raison d'utiliser mouseDown en premier lieu, car il est dépréciée. Vous devriez (probablement) utiliser processMouseEvent à la place, ce qui vous donne un MouseEvent pour jouer avec.

1

mouseDown est déprécié. Tout ce dont vous avez besoin est accessible par le MouseEvent. getButton. Track BUTTON3.

+0

Qu'est-ce qui devrait être utilisé à la place? ev.getButton() n'existe pas car ev est un Event et non un MouseEvent. – Burkhard

+0

vous devez implémenter l'interface MouseListener, regardez l'exemple de code sur cette page: http://java.sun.com/docs/books/tutorial/uiswing/events/mouselistener.html –

+5

Cela devrait être BUTTON2, pas BUTTON3. BUTTON3 est le bon bouton. –