JavaFX 动态添加按钮
Posted
技术标签:
【中文标题】JavaFX 动态添加按钮【英文标题】:JavaFX dynamically add buttons 【发布时间】: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,只需在控制器类中告诉方法名称?
【问题讨论】:
【参考方案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的用法。以上是关于JavaFX 动态添加按钮的主要内容,如果未能解决你的问题,请参考以下文章
在 JavaFX 中将元素动态添加到固定大小的 GridPane
向 Tableview Javafx 动态添加和删除 tablecolumn
JavaFX 动态地将标签添加到窗格,在 fxml 文件中定义