1
我想通过点击存在的原始按钮创建一个新的按钮,如下面的代码所示。现在我希望新按钮具有与当前按钮相同的功能。当我点击新按钮时,它也会创建新的按钮。如果原始按钮具有更多功能,并且新按钮也可以具有这些功能。javafx复制当前节点到另一个节点的功能
Button btn = new Button("Original Button");
VBox root = new VBox();
root.getChildren().add(btn);
btn.setOnMouseClicked(e->{
root.getChildren().add(new Button("New button"));
});
有通过复制每一个事件处理程序,例如,没有办法解决这样做'button oldButton =(Button)e.getSource(); Button newButton = new Button(...); newButton.setOnMouseClicked(oldButton.getOnMouseClicked());'。然而,使用'addEventHandler'添加的事件处理程序不能被枚举(至少不能通过反射访问私有成员)。顺便说一句:请注意,通常'onAction'事件用于按钮而不是'onMouseClicked',因为前一个事件也是在按下按钮时触发的。 – fabian