J'avais de très grandes méthodes de gestion d'événements dans ma classe de contrôleurs. J'ai placé chacun d'entre eux dans une classe séparée, mais maintenant ils ne sont plus appelés.Ajout d'un gestionnaire d'événements dans javafx via une classe personnalisée
Voici comment il est actuellement mis en œuvre:
private DragDetectedHandler dragDetectedHandler = new DragDetectedHandler(stacks, nextCards, gameTable);;
node.setOnDragDetected(dragDetectedHandler);
Si j'appelle cela fonctionne:
node.setOnDragDetected(System.out::println);
(Juste pour vérifier que le code est atteint)
Et la classe gestionnaire :
public class DragDetectedHandler implements EventHandler<MouseEvent> {
private Stacks stacks;
private NextCards nextCards;
private Table gameTable;
public DragDetectedHandler(Stacks stacks, NextCards nextCards, Table gameTable) {
this.stacks = stacks;
this.nextCards = nextCards;
this.gameTable = gameTable;
}
@Override
public void handle(MouseEvent mouseEvent) {
System.out.println("Handle stuff here :)");
}
}
Je suis probablement en train de négliger quelque chose mais des questions similaires ne m'ont pas aidé à obtenir ma réponse. Donc, la question: Comment appeler le gestionnaire d'événements? Ou pourquoi le code suivant n'appelle pas le gestionnaire d'événements?
node.setOnDragDetected(dragDetectedHandler);
Pouvez-vous s'il vous plaît modifier votre question d'inclure ... eh bien ... une question? –
@JoeC Merci, j'ai oublié de poser la question – Vinagy