You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为3个按钮注册EventHandler?EventHandler与ActionListener有什么区别?

核心问题解答

  1. 任务4和任务5的关系
    你在任务4里写的ButtonHandler是实现了EventHandler接口的自定义类,相当于定义了事件触发后要执行的逻辑模板,还没有生成实际可用的实例对象。任务5的要求就是用你写好的这个类创建实例,再把实例绑定到三个按钮上,这样按钮触发点击事件时才会执行你写的handle方法里的逻辑。

  2. 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:39:03