将svg文件拖放到画布中

初学者

我创建了一个编辑器,在其中显示画布。我想允许SVG文件使用DnD。

事实是,我允许使用此部分代码删除文件:

int operations = DND.DROP_COPY | DND.DROP_MOVE;
Transfer[] types = new Transfer[]{FileTransfer.getInstance()};

DropTarget dt = new DropTarget(parent, operations);
    dt.setTransfer(types);
    dt.addDropListener(new DropTargetAdapter() {
    public void drop(DropTargetEvent event) {
    //ToDo
    }

但是它允许任何类型的文件,并且我只想要.svg文件。如何创建条件,该条件将检查放置的文件是否为.svg文件,如果是,则使用导入的文件创建新画布?

我也想恢复被删除文件的路径,我该怎么做呢?

我真的不知道如何将导入的文件限制为svg。

巴兹

假设所有文件都具有有效的.svg扩展名,请检查适配器中的文件扩展名,并仅使用具有正确扩展名的那些文件,而忽略具有其他扩展名的文件。

然后执行您需要对文件执行的操作:

public static void main(String[] args)
{
    final Display display = new Display();
    final Shell shell = new Shell(display);
    shell.setText("Stackoverflow");
    shell.setLayout(new FillLayout());

    Label label = new Label(shell, SWT.NONE);

    DropTarget target = new DropTarget(label, DND.DROP_DEFAULT | DND.DROP_MOVE | DND.DROP_COPY);

    Transfer[] transfers = new Transfer[]{FileTransfer.getInstance()};

    target.setTransfer(transfers);
    target.addDropListener(new DropTargetAdapter()
    {
        public void drop(DropTargetEvent event)
        {
            if (event.data == null)
            {
                event.detail = DND.DROP_NONE;
                return;
            }

            String[] paths = (String[]) event.data;
            List<File> files = new ArrayList<>();

            for (String path : paths)
            {
                int index = path.lastIndexOf(".");
                if (index != -1)
                {
                    String extension = path.substring(index + 1);
                    if (Objects.equals(extension, "svg"))
                        files.add(new File(path));
                }
            }

            System.out.println(files);
        }
    });

    shell.pack();
    shell.open();
    shell.setSize(400, 300);

    while (!shell.isDisposed())
    {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将 SVG 文件拖放到 Fabricjs 画布上?

来自分类Dev

将文件拖放到NSOutlineView中

来自分类Dev

PySide:将文件拖放到QListWidget中

来自分类Dev

将控件从容器中拖放到画布上

来自分类Dev

将元素拖放到画布上

来自分类Dev

将图像拖放到画布上

来自分类Dev

将图像拖放到画布图像上

来自分类Dev

Qt-将文件拖放到ListView中

来自分类Dev

Xcode Swift MacOS App,将文件拖放到NSTextField中

来自分类Dev

Xcode Swift MacOS App,将文件拖放到NSTextField中

来自分类Dev

将文件拖放到Nautilus中的脚本上

来自分类Dev

从虚拟Windows 7将文件拖放到Linux Mint中

来自分类Dev

将一个画布内的对象拖放到html5中的另一个画布上

来自分类Dev

将多个文件拖放到 javaFX

来自分类Dev

将多张图像从工具栏拖放到画布上

来自分类Dev

无法将拖放文件从File Roller拖放到Nautilus

来自分类Dev

将外部对象拖放到CKEditor中

来自分类Dev

将ScatterViewItem拖放到RichTextBox中

来自分类Dev

将矩形拖放到列表中

来自分类Dev

将单词拖放到图形中 WindowsForms

来自分类Dev

将文件拖放到Outlook文件夹中后损坏的文件

来自分类Dev

如何使用“文件”应用程序(Nautilus)将文件拖放到文件夹中?

来自分类Dev

将文件从文件系统拖放到Flex中不起作用

来自分类Dev

我可以使用Nautilus将文件拖放到加密的文件夹中吗?

来自分类Dev

Xpages:如何将Xpages中的文件附件拖放到“我的窗口小部件”中

来自分类Dev

如何在PyQt5中将文件拖放到QTableWidget中

来自分类Dev

将文件拖放到“访问”表单中的未绑定超链接框中

来自分类Dev

无法将图像拖放到android studio中的图像文件夹中

来自分类Dev

将承诺的文件拖放到Dock中的应用程序图标上

Related 相关文章

  1. 1

    如何将 SVG 文件拖放到 Fabricjs 画布上?

  2. 2

    将文件拖放到NSOutlineView中

  3. 3

    PySide:将文件拖放到QListWidget中

  4. 4

    将控件从容器中拖放到画布上

  5. 5

    将元素拖放到画布上

  6. 6

    将图像拖放到画布上

  7. 7

    将图像拖放到画布图像上

  8. 8

    Qt-将文件拖放到ListView中

  9. 9

    Xcode Swift MacOS App,将文件拖放到NSTextField中

  10. 10

    Xcode Swift MacOS App,将文件拖放到NSTextField中

  11. 11

    将文件拖放到Nautilus中的脚本上

  12. 12

    从虚拟Windows 7将文件拖放到Linux Mint中

  13. 13

    将一个画布内的对象拖放到html5中的另一个画布上

  14. 14

    将多个文件拖放到 javaFX

  15. 15

    将多张图像从工具栏拖放到画布上

  16. 16

    无法将拖放文件从File Roller拖放到Nautilus

  17. 17

    将外部对象拖放到CKEditor中

  18. 18

    将ScatterViewItem拖放到RichTextBox中

  19. 19

    将矩形拖放到列表中

  20. 20

    将单词拖放到图形中 WindowsForms

  21. 21

    将文件拖放到Outlook文件夹中后损坏的文件

  22. 22

    如何使用“文件”应用程序(Nautilus)将文件拖放到文件夹中?

  23. 23

    将文件从文件系统拖放到Flex中不起作用

  24. 24

    我可以使用Nautilus将文件拖放到加密的文件夹中吗?

  25. 25

    Xpages:如何将Xpages中的文件附件拖放到“我的窗口小部件”中

  26. 26

    如何在PyQt5中将文件拖放到QTableWidget中

  27. 27

    将文件拖放到“访问”表单中的未绑定超链接框中

  28. 28

    无法将图像拖放到android studio中的图像文件夹中

  29. 29

    将承诺的文件拖放到Dock中的应用程序图标上

热门标签

归档