我有fxml和控制器类。在控制器类中,我有someAction()
方法,在fxml中我将#someAction
设置为OnAction用于某些Button。现在我想创建不在fxml中的按钮,而是从java代码动态创建button = new Button()
。我仍然加载fxml,我仍然使用someAction()
方法控制该控制器。如何将someAction()
设置为onAction作为我的按钮?从java代码我发现只有setOnAction(EventHandler<ActionEvent> eh)
。有没有办法在类似fxml的样式中指定onAction,只是在控制器类中告诉方法名称?
答案 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);
}
或者以相同的方式,定义业务逻辑方法并在两个不同的动作事件处理程序中调用它。