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