JavaFX:如何注销按钮操作事件
我有一个按钮,它可以设置如下动作JavaFX:如何注销按钮操作事件,java,javafx,Java,Javafx,我有一个按钮,它可以设置如下动作 moveRight.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { }}); moveRight.setOnAction(新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent e){ }}); 如何从该按钮中删除此EventFilter?我尝试了removeve
moveRight.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
}});
moveRight.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent e){
}});
如何从该按钮中删除此EventFilter?我尝试了
removeventhandler
方法,但该方法的参数应该是什么?以下调用实现了您想要的技巧:
moveRight.setOnAction(null);
以下调用实现了您想要的技巧:
moveRight.setOnAction(null);
你也可以禁止它被点击,它不再听动作你也可以禁止它被点击,它不再听动作因为我在你的问题下的评论几乎看不清,所以我发布了一个答案 根据您想要注册actionlistener的评论,删除它,然后重新注册同一个侦听器 实现这一目标的方法还有很多 1) 编写自己的处理程序:
EventHandler<ActionEvent> eh = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// CODE
}
};
button.setOnAction(eh); //registered
button.setOnAction(null); //unregistered
button.setOnAction(eh); //re-registered
在handle方法中,可以通过event.getSource()获取调用方法的对象,这样就可以通过
Button b = (Button)event.getSource();
3) 创建其他一些实现javafx.event.EventHandler的类,并将其实例化为您的处理程序 因为我对你的问题的评论几乎看不清,所以我发布了一个答案 根据您想要注册actionlistener的评论,删除它,然后重新注册同一个侦听器 实现这一目标的方法还有很多 1) 编写自己的处理程序:
EventHandler<ActionEvent> eh = new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
// CODE
}
};
button.setOnAction(eh); //registered
button.setOnAction(null); //unregistered
button.setOnAction(eh); //re-registered
在handle方法中,可以通过event.getSource()获取调用方法的对象,这样就可以通过
Button b = (Button)event.getSource();
3) 创建其他一些实现javafx.event.EventHandler的类,并将其实例化为您的处理程序 如果您只想删除它,您可以设置moveRight.setOnAction(null),要删除特定的处理程序,您必须为它保留一个引用。如果我想重新注册它,可能需要做什么…然后您必须像这样创建eventhandler:'eventhandler eh=new eventhandler(){@Override public void handle(ActionEvent ae){//Code};button.setOnAction(eh);//添加button.removeOnAction(eh);//删除'如果您只想删除它,可以设置moveRight.setOnAction(null),要删除特定的处理程序,您必须保留对它的引用。如果我想重新注册它,那么可能需要做什么…然后您必须像这样创建eventhandler:'eventhandler eh=new eventhandler(){@Override public void handle(ActionEvent ae){//Code};button.setOnAction(eh);//add button.removeOnAction(eh);//remove'