JavaFX动态添加按钮
问题描述:
我有fxml和控制器类。在控制器类中,我有someAction()
方法,在fxml中,我将#someAction
设置为一些Button的onAction。现在我想创建不是在fxml中的按钮,而是从java代码动态地创建按钮button = new Button()
。我仍然加载fxml,我仍然有这个控制器与someAction()
方法。我如何将someAction()
设置为onAction作为我的按钮?从java代码我发现只有setOnAction(EventHandler<ActionEvent> eh)
。有没有一种方法来指定类似fxml风格的onAction,只是告诉控制器类中的方法名?JavaFX动态添加按钮
答
的方法之一可以是:
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 2014-09-19 10:37:16
@IchichiUchiha是的,你是对的。我只想在这里显示eventhandler的用法。 – 2014-09-19 11:04:07