我有fxml和controller类。在控制器类中,我有someAction()
方法,在fxml中,我将#someAction
设置为某些Button的onAction。现在,我想创建按钮不是在fxml中,而是从Java代码动态创建为button = new Button()
。我仍然加载fxml,并且仍然具有使用someAction()
方法的此控制器。如何将someAction()
设置为按钮的onAction?从Java代码中,我仅找到setOnAction(EventHandler<ActionEvent> eh)
。有没有一种方法可以像fxml一样指定onAction,仅在控制器类中告诉方法名称?
最佳答案
方法之一可以是:
private EventHandler<ActionEvent> yourHandler = new EventHandler<>() {
public void handle(ActionEvent event) {
// your logic
}
};
然后
button.setOnAction(yourHandler);
和
public void someAction(ActionEvent event) {
yourHandler.handle(null);
}
或以相同的方式,定义业务逻辑方法并在两个不同的动作事件处理程序中调用它。