1
Je souhaite créer un nouveau bouton en cliquant sur Exister le bouton d'origine comme indiqué ci-dessous. Maintenant, j'espère que le nouveau bouton aura la même fonction que le bouton actuel. Lorsque je clique sur le nouveau bouton, il créera également un nouveau bouton. Si le bouton d'origine a plus de fonctions, le nouveau bouton peut également avoir ces fonctions.Fonction de copie javafx du nœud actuel vers un autre nœud
Button btn = new Button("Original Button");
VBox root = new VBox();
root.getChildren().add(btn);
btn.setOnMouseClicked(e->{
root.getChildren().add(new Button("New button"));
});
Il n'y a pas moyen de faire contourner ce problème en copiant chaque gestionnaire d'événements unique, par exemple 'Button oldButton = (Bouton) e.getSource(); Button newButton = nouveau bouton (...); newButton.setOnMouseClicked (oldButton.getOnMouseClicked()); '. Cependant, les gestionnaires d'événements ajoutés en utilisant 'addEventHandler' ne peuvent pas être énumérés (du moins pas sans accéder aux membres privés via la réflexion). BTW: Notez que l'événement 'onAction' est généralement utilisé pour les boutons au lieu de' onMouseClicked', car l'ancien événement est également déclenché en appuyant sur Entrée lorsque le bouton est mis au point. – fabian