如何为3个按钮注册EventHandler?EventHandler与ActionListener有什么区别?
核心问题解答
任务4和任务5的关系
你在任务4里写的ButtonHandler是实现了EventHandler接口的自定义类,相当于定义了事件触发后要执行的逻辑模板,还没有生成实际可用的实例对象。任务5的要求就是用你写好的这个类创建实例,再把实例绑定到三个按钮上,这样按钮触发点击事件时才会执行你写的handle方法里的逻辑。EventHandler和ActionListener的区别
ActionListener是Java Swing旧GUI框架的按钮事件监听接口,你现在的代码用的是JavaFX的GUI框架,EventHandler是JavaFX统一的事件处理接口,适用所有JavaFX组件的各类事件,不要把两个不同框架的API搞混就行。
补全后的任务5代码
// ***** Task 5: Student code restarts here // Note: search for and complete Task 4 before performing this task // declare and instantiate an EventHandler EventHandler<ActionEvent> buttonHandler = new ButtonHandler(); // register the handler on the 3 buttons // that you declared in Task 1 button1.addEventHandler(ActionEvent.ACTION, buttonHandler); button2.addEventHandler(ActionEvent.ACTION, buttonHandler); button3.addEventHandler(ActionEvent.ACTION, buttonHandler); // task 5 ends here
补充说明
如果你的代码里还没有导入对应依赖,记得在文件头部加上导入语句:
import javafx.event.ActionEvent; import javafx.event.EventHandler;
内容的提问来源于stack exchange,提问作者sirdanforth
相关产品推荐
相关产品推荐

