JavaFx – 将两个’setOnAction’设置为相同的按钮

我从另一个获取EventHandler,我想将此EventHandler和其他ActionEvent设置为相同的按钮.有可能的?

代码如下.
按钮是:“btnAdd”.

public void addActionListener(EventHandler<ActionEvent> eventHandlerSetNotSave){
    btnAdd.setonAction((e)-> {
        FileChooser fileChooser = new FileChooser();
        fileChooser.setTitle("Open Resource File");
        FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("pictures file format","*.TIF","*.JPG","*.PNG","*.GIF","*.JEPG");
        fileChooser.getExtensionFilters().addAll(extFilter);
        File file = fileChooser.showOpenDialog(null);

        if (file != null &&
                url.equals(emptyImageUrl)? true:alertMessageWarning("The viseme will change,and prevIoUs viseme will be delete.")) {
            setimage("file:"+file.toString());
            changeAfterSaved=false;
        }
    });
    btnAdd.setonAction(eventHandlerSetNotSave);

    btnDelete.setonAction((e)-> {
        changeAfterSaved=true;
        setimage(emptyImageUrl);
    });
}

解决方法

调用addEventHandler()方法而不是setonAction(…):

btnAdd.addEventHandler(ActionEvent.ACTION,(e)-> {
    FileChooser fileChooser = new FileChooser();
    fileChooser.setTitle("Open Resource File");
    FileChooser.ExtensionFilter extFilter = new FileChooser.ExtensionFilter("pictures file format","*.JEPG");
    fileChooser.getExtensionFilters().addAll(extFilter);
    File file = fileChooser.showOpenDialog(null);

    if (file != null &&
            url.equals(emptyImageUrl)? true:alertMessageWarning("The viseme will change,and prevIoUs viseme will be delete.")) {
        setimage("file:"+file.toString());
        changeAfterSaved=false;
    }
});
btnAdd.addEventHandler(ActionEvent.ACTION,eventHandlerSetNotSave);

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...