Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

isPopupTrigger()... mal foutu !

1 réponse
Avatar
Esteban
Bonjour,

voici un problème auquel je n'ai pas trouvé de solution et je trouve que
c mal foutu dans Java :

J'ai un menu popup à afficher, j'ai donc un MouseEvent et 2 méthodes
mousePressed et mouseReleased.

Comme c écrit dans la doc, je teste dans ces 2 évts si le bouton de la
souris avec isPopupTrigger().

Sous Windows, isPopupTrigger() retourne vrai dans l'evt mouseReleased
pour un clic droit de souris. Pour le meme clic, il retourne faux dans
mousePressed.

C'est tres embetant car moi je voudrais que mon clic droit me fasse une
action précise et mon clic gauche m'affiche simplement le menu popup (et
ne fasse rien d'autre).

Or dans mousePressed, le clic droit et interpreté comme un clic gauche
car il n'est pas isPopupTrigger()...

Quelqu'un a-t-il une solution pour moi ?... je ne pense pas qu'il y en ai
mais bon on ne sait jamais, peut-être un ingénieur de chez Sun traine-t-
il sur ce forum...

@+

1 réponse

Avatar
TestMan
Bonsoir,
Petite reflexion : sous Java t'es pas obligé d'avoir plusieur boutons de
souris ;-)

La raison est simple, c'est multi-plateforme !

ça surprend qqn qui n'a jamais vu autre chose qu'un PC dans ça vie, mais
sous Mac ya qu'un bouton (sauf exception rare), et sous station unix yen
a 3 par défaut (le célebre copier/coller).

Je te conseille de lire un peu de litérature sur le sujet, que tu
trouvera en abondance dans les tutoriaux.

Perso j'utilise plutot sur un mouseReleased :
if (ev.getModifiers()== Event.META_MASK){
//afficher !!!!
}

A+
TestMan


Esteban wrote:

Bonjour,

voici un problème auquel je n'ai pas trouvé de solution et je trouve que
c mal foutu dans Java :

J'ai un menu popup à afficher, j'ai donc un MouseEvent et 2 méthodes
mousePressed et mouseReleased.

Comme c écrit dans la doc, je teste dans ces 2 évts si le bouton de la
souris avec isPopupTrigger().

Sous Windows, isPopupTrigger() retourne vrai dans l'evt mouseReleased
pour un clic droit de souris. Pour le meme clic, il retourne faux dans
mousePressed.

C'est tres embetant car moi je voudrais que mon clic droit me fasse une
action précise et mon clic gauche m'affiche simplement le menu popup (et
ne fasse rien d'autre).

Or dans mousePressed, le clic droit et interpreté comme un clic gauche
car il n'est pas isPopupTrigger()...

Quelqu'un a-t-il une solution pour moi ?... je ne pense pas qu'il y en ai
mais bon on ne sait jamais, peut-être un ingénieur de chez Sun traine-t-
il sur ce forum...

@+