Java Vaadin upload组件receiveUpload()方法

Java Vaadin upload组件receiveUpload()方法,java,vaadin,Java,Vaadin,我想上传一个用瓦丁录制的文件。我正在使用vaadin的上传组件。但问题是我不想显示文件对话框,而是想触发事件,从我自己的按钮上传组件。我已经编写了一个由Upload组件扩展的类,并调用了它的fireUploadSuccess()方法,该事件被成功触发。但是我想手动调用receiveUpload()方法,我的意思是从我自己的按钮触发一些事件来调用这个方法。朋友们,有什么解决办法吗? 谢谢 通常,在基本Upload类中,当调用fireUploadSuccess()时,通常会调用附加类的UploadS

我想上传一个用瓦丁录制的文件。我正在使用vaadin的上传组件。但问题是我不想显示文件对话框,而是想触发事件,从我自己的按钮上传组件。我已经编写了一个由Upload组件扩展的类,并调用了它的fireUploadSuccess()方法,该事件被成功触发。但是我想手动调用receiveUpload()方法,我的意思是从我自己的按钮触发一些事件来调用这个方法。朋友们,有什么解决办法吗?
谢谢

通常,在基本Upload类中,当调用fireUploadSuccess()时,通常会调用附加类的UploadSucceed方法

如果您确实更改了方法,您可能忘记了
super()
语句


如果可以的话,请给我们看一个修改过的类的例子。这里是我使用的一个过程

我创建了一个名为MyFileReceive的自定义类,它实现了
Upload.java
文件的
Receiver
接口。在那里,我重写了方法
receiveUpload()
,并在收到上传的文件时执行了我想要执行的操作。将MyFileReceiver类的实例放入Upload类的构造函数中。希望它能奏效

    public class MyUI extends UI{
       private MyUI.MyFileReceiver receiver = new MyUI.MyFileReceiver();
       private Upload upload;
       protected void init(VaadinRequest vaadinRequest) {
            .............
            .......................
            upload = new Upload(null, receiver);
            upload.addSucceededListener((SucceededEvent event) -> {
            //Do what you want to do
    });
    public class MyReceiver implements Receiver {
        @Override
        public OutputStream receiveUpload(String filename, String mimeType) {
        //do what you want to do when receive upload
        }
    }
}