将多个文件逐个拖放到javaFX中

将多个文件逐个拖放到javaFX中,java,javafx,Java,Javafx,要求:如果用户一个接一个地删除多个文件,那么如何使用它,如果用户一次删除一个或多个文件,我有获取文件的代码 我在这里发现了类似的问题,但答案并不是我所期望的 以下是我到目前为止尝试在文本区域中拖动文件的内容: textArea.setOnDragOver(new EventHandler<DragEvent>() { @Override public void handle(DragEvent event) { if (even

要求:如果用户一个接一个地删除多个文件,那么如何使用它,如果用户一次删除一个或多个文件,我有获取文件的代码

我在这里发现了类似的问题,但答案并不是我所期望的

以下是我到目前为止尝试在文本区域中拖动文件的内容:

textArea.setOnDragOver(new EventHandler<DragEvent>() {
        @Override
        public void handle(DragEvent event) {
            if (event.getDragboard().hasFiles()) 
                event.acceptTransferModes(TransferMode.COPY);

            event.consume();
        }
    });

textArea.setOnDragDropped(new EventHandler<DragEvent>() {
        @Override
        public void handle(DragEvent event) {
            Dragboard db = event.getDragboard();
            List<File> files = (ArrayList<File>) db.getContent(DataFormat.FILES);

            if (files != null) {
                File file = files.get(0);

                // rest implementation after getting file

             }
             event.setDropCompleted(success);

            event.consume();
        }

    });
textArea.setOnDragOver(新的EventHandler(){
@凌驾
公共无效句柄(DrageEvent事件){
if(event.getDragboard().hasFiles())
event.acceptTransferModes(TransferMode.COPY);
event.consume();
}
});
setOnDragDrop(新的EventHandler(){
@凌驾
公共无效句柄(DrageEvent事件){
Dragboard db=event.getDragboard();
List files=(ArrayList)db.getContent(DataFormat.files);
如果(文件!=null){
File=files.get(0);
//获取文件后的rest实现
}
事件。setDropCompleted(成功);
event.consume();
}
});
我可以使用
list files=(ArrayList)db.getContent(DataFormat.files)获取文件列表如果用户删除多个文件

但若用户一个接一个(不止一个)地删除文件,那个么如何使用它(和我们在gmail中找到的一样,如下图所示)


不是每个人都熟悉gmail。你能描述一下你想要的行为吗?对我来说,这种尝试似乎不合逻辑。释放鼠标时,将调用拖动的
事件处理程序。然而,你想继续刚才结束的拖放动作,这需要按下鼠标键……在你的情况下,“消耗”的是什么?因为若你们来过一次,你们可以直接采取行动,但如何知道什么时候结束你们一个接一个地做?我已经更新了代码,添加了需求的图像。Gmail存储文件,如果用户逐个删除。如果拖动的
dragdroped
事件不能按要求执行,请您建议我在javafx中使用其他方法,您应该替换
List files=(ArrayList)db.getContent(DataFormat.files)
列表文件=db.getFiles()。如果要处理多个拖放,只需在代码中保留所有这些文件的集合,例如,如果要将所有这些文件存储在
ListView-ListView
中,则可以执行
ListView.getItems().addAll(文件)但是,您也可以遍历文件列表并将其逐个上载到服务器,将文件复制到临时文件,以防止用户在您处理完文件或任何您喜欢的文件之前删除它们…感谢Fabian的指导。:)