通过代码添加JavaFX按钮时,如何调用另一个类的按钮的.setOnAction
方法。从另一个类调用`setOnAction`
举例来说,如果我是处理同一类中的按钮按下:
public class SomeClass{
Button continueButton = new Button("Continue");
continueButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
someMethod();
}
});
}
但是如果我想利用这个控制器,怎么能“链接”的动作事件到内的方法其他类。
如:
public class SomeClass{
private SomeClassController controller;
Button continueButton = new Button("Continue");
continueButton.setOnAction(
//Call continuePressed() on controller
);
}
public class SomeClassController{
public void continuePressed(){
someMethod();
}
}
['setOnAction()'](https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/ButtonBase .html#setOnAction-javafx.event.EventHandler-)需要一个['EventHandler'](https://docs.oracle.com/javase/8/javafx/api/javafx/event/EventHandler.html),它是一个接口。所以,当你试图从它创建一个匿名类时,你需要重写'handle()'方法。 –
ItachiUchiha
我不完全理解你的问题。你为什么不能从handle()调用'controller.someMethod()'? SomeClassController的实例是不是有效的最终? – ItachiUchiha