Java swing怎么实现上传文件并支持拖拽上传

Java swing怎么实现上传文件并支持拖拽上传,第1张

你这个复杂了,我稍微说说吧。

进度条稍微简单点,你就去看看Oracle的tutorial就行了,记得运用科学(或者不用?)

拖拽不是一下能写出来的,我随便拉了一个例子,你研究下:

final class FileDropHandler extends TransferHandler {

    @Override

    public boolean canImport(TransferHandler.TransferSupport support) {

        for (DataFlavor flavor : support.getDataFlavors()) {

            if (flavor.isFlavorJavaFileListType()) {

                return true

            }

        }

        return false

    }

    @Override

    @SuppressWarnings("unchecked")

    public boolean importData(TransferHandler.TransferSupport support) {

        if (!this.canImport(support))

            return false

        List<File> files

        try {

            files = (List<File>) support.getTransferable()

                    .getTransferData(DataFlavor.javaFileListFlavor)

        } catch (UnsupportedFlavorException | IOException ex) {

            // should never happen (or JDK is buggy)

            return false

        }

        for (File file: files) {

            // do something...

        }

        return true

    }

}

用的时候:

myComponent.setTransferHandler(new FileDropHandler())

String path = null

JFileChooser fc = new JFileChooser()

fc.setDialogTitle("请选择要上传的文件...")

fc.setApproveButtonText("确定")

fc.setFileSelectionMode(JFileChooser.FILES_ONLY)

if (JFileChooser.APPROVE_OPTION == fc.showOpenDialog(this)) {

path=fc.getSelectedFile().getPath()

}

最后path 中的值就是选中的那个文件的路径,然后就是IO *** 作了。

那个this一般是指当前Frame或Panel,传入一个Component也可以


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11682479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存