【发布时间】:2016-07-14 14:09:01
【问题描述】:
我正在使用 javafx 为我的程序创建一个 GUI,并创建了一个自定义按钮 ComponentButton。这扩展了javafx.scene.control.Button,到目前为止唯一真正的区别是按钮有一个额外的成员变量。我希望我的按钮的所有实例都附加一个动作侦听器,侦听器将使用成员变量。因此,我希望能够在按钮的类定义中定义动作监听器。到目前为止,我还无法完成这项工作,我可以为按钮的每个实例创建一个动作侦听器,但由于其中有很多,我宁愿避免这样做。
非常感谢任何想法或替代方法,在此先感谢。
编辑:已回答
我决定让视图(使用按钮的地方)实现EventHandler<ActionEvent>。这意味着我可以添加方法
@Override
public void handle(final ActionEvent event)
{
//Do stuff
}
这意味着我可以调用button.setOnAction(this); 来执行操作
【问题讨论】:
-
“我可以为按钮的每个实例创建一个动作侦听器,但由于会有很多,我宁愿避免它”。为什么要避免它?并且“到目前为止,我还无法完成这项工作”并不是对问题的陈述。究竟出了什么问题?
-
肯定是
this.setOnAction(this);,而不是button.setOnAction(this);? -
我在 UI 类中使用它,根据需要循环创建按钮