【问题标题】:JavaFX dynamically add buttonsJavaFX 动态添加按钮
【发布时间】:2014-09-19 09:42:16
【问题描述】:

我有 fxml 和控制器类。在控制器类中,我有 someAction() 方法,在 fxml 中,我将 #someAction 设置为某些按钮的 onAction。现在我想不在 fxml 中创建按钮,而是从 java 代码动态创建为button = new Button()。我仍然加载 fxml,并且我仍然有这个带有 someAction() 方法的控制器。如何将someAction() 设置为按钮的 onAction?从 java 代码中我只找到了setOnAction(EventHandler<ActionEvent> eh)。有没有办法以类似 fxml 的方式指定 onAction,只需在控制器类中告诉方法名称?

【问题讨论】:

    标签: java javafx fxml


    【解决方案1】:

    其中一种方法可以是:

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

    然后

    button.setOnAction(yourHandler);
    

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

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

    【讨论】:

    • 第二种方法听起来更实用:)
    • @ItachiUchiha 是的,你是对的。我也只是想在这里展示一下eventhandler的用法。
    猜你喜欢
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 2017-04-07
    • 2016-04-24
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多