⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mytransferhandler.java

📁 局域网聊天工具,学习java桌面应用程序的好例子,(代传)
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package ipmsg.gui;import ipmsg.etc.GlobalConstant;import ipmsg.etc.GlobalVar;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.io.File;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;import java.util.ArrayList;import java.util.Arrays;import java.util.Iterator;import java.util.List;import javax.swing.DefaultListModel;import javax.swing.JList;import javax.swing.TransferHandler;/** * * @author qqiu *//** * 该类实现类似飞鸽的拖放功能。<br> * 支持windows和linux。<br> * 但是java对该功能的实现居然不一样。居然跨平台??? */public class MyTransferHandler extends TransferHandler {        private JList jlist;        public MyTransferHandler(JList jlist){        this.jlist=jlist;    }    @Override    /**     * 能不能拖放     */    public boolean canImport(TransferHandler.TransferSupport support) {        if ((GlobalVar.OS == GlobalConstant.WINDOWS &&                !support.isDataFlavorSupported(                DataFlavor.javaFileListFlavor)) ||                (GlobalVar.OS == GlobalConstant.LINUX&&                !support.isDataFlavorSupported(DataFlavor.stringFlavor))) {            return false;        }        return true;    }    @Override    /**     * 导入数据。<br>     * 该函数对windows和linux有不同的实现。     */    public boolean importData(TransferHandler.TransferSupport support) {        if (!canImport(support)) {            return false;        }        List list = null;        Iterator iterator;        Transferable tr = support.getTransferable();        //获取本地listmodel并初始化        DefaultListModel listModel;        if (jlist.getModel().getSize() == 0) {            listModel = new DefaultListModel();        } else {            listModel = (DefaultListModel) jlist.getModel();        }        if (support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {            try {                list = (List) (tr.getTransferData(DataFlavor.javaFileListFlavor));            } catch (UnsupportedFlavorException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            iterator = list.iterator();            while (iterator.hasNext()) {                File f = (File) iterator.next();                if (!listModel.contains(f.getPath())) {                    listModel.addElement(f.getPath());                }            }        } else if (support.isDataFlavorSupported(DataFlavor.stringFlavor)) {            String listname = null;            try {                listname = (tr.getTransferData(DataFlavor.stringFlavor)).toString();            } catch (UnsupportedFlavorException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            list = new ArrayList<String>(Arrays.asList(listname.split("\r\n")));            iterator = list.iterator();            while (iterator.hasNext()) {                File f = null;                try {                    f = new File(new URI((String) iterator.next()));//                        System.out.println("string : " + f.getPath());                    if (!listModel.contains(f.getPath())) {                        listModel.addElement(f.getPath());                    }                } catch (java.lang.NullPointerException e) {                } catch (URISyntaxException ex) {                } catch (IllegalArgumentException e) {                }//                    MainFrame.vt.addElement(f);            }        } else {            return false;        }        jlist.setModel(listModel);        if (jlist.getModel().getSize() > 0) {            jlist.setSelectedIndex(0);        }        return true;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -