JavaFX déclenche l'événement Mouse Release sans avoir déclenché au préalable un événement Mouse Press


J'ai un bouton radio sur lequel je veux que l'utilisateur puisse relâcher un clic de souris après avoir appuyé sur la souris d'un autre composant. En effet; l'utilisateur appuierait sur un composant différent, ferait glisser sa souris sur ce bouton radio et relâcherait sa souris, déclenchant un événement de libération de la souris.

Cependant, cette méthode que j'utilise ne me permet pas de le faire.

radioButton.addEventHandler(MouseEvent.MOUSE_RELEASED, event -> System.out.println("RELEASE!"));

Je reçois uniquement le message "RELEASE!" dans la console lorsque je relâche la souris après avoir appuyé sur le bouton radio. Comment puis-je faire en sorte que je puisse déclencher l'événement release uniquement?

Merci.

Author: user2513924, 2016-01-16

1 answers

Utilisez l'événement MouseDragEvent.MOUSE_DRAG_RELEASED à la place de l'événement MouseEvent.MOUSE_RELEASED et utilisez startFullDrag() sur un événement DRAG_DETECTED (sinon il ne détectera pas le glissement).

En vigueur:

radioButton.addEventHandler(MouseEvent.MOUSE_RELEASED, event -> System.out.println("RELEASE!"));
//The starting node in which the drag is started
node.setOnDragDetected(event -> node.startFullDrag());
 0
Author: user2513924, 2016-01-16 20:39:12