JavaFX动态添加按钮

时间:2014-09-19 09:42:17

标签: java javafx fxml

我有fxml和控制器类。在控制器类中,我有someAction()方法,在fxml中我将#someAction设置为OnAction用于某些Button。现在我想创建不在fxml中的按钮,而是从java代码动态创建button = new Button()。我仍然加载fxml,我仍然使用someAction()方法控制该控制器。如何将someAction()设置为onAction作为我的按钮?从java代码我发现只有setOnAction(EventHandler<ActionEvent> eh)。有没有办法在类似fxml的样式中指定onAction,只是在控制器类中告诉方法名称?

1 个答案:

答案 0 :(得分:2)

其中一种方法可以是:

private EventHandler<ActionEvent> yourHandler = new EventHandler<>() {
     public void handle(ActionEvent event) {
         // your logic
     }
};

然后

button.setOnAction(yourHandler);

public void someAction(ActionEvent event) {
    yourHandler.handle(null);
}

或者以相同的方式,定义业务逻辑方法并在两个不同的动作事件处理程序中调用它。