zoukankan      html  css  js  c++  java
  • 支持拖拽文件到 JTextArea。

    package com.lesten.tools;
    
    import java.awt.datatransfer.DataFlavor;
    import java.awt.datatransfer.Transferable;
    import java.awt.datatransfer.UnsupportedFlavorException;
    import java.awt.dnd.DnDConstants;
    import java.awt.dnd.DropTargetDragEvent;
    import java.awt.dnd.DropTargetDropEvent;
    import java.awt.dnd.DropTargetEvent;
    import java.awt.dnd.DropTargetListener;
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    
    import javax.swing.JTextArea;
    
    public class SupportDragTextArea extends JTextArea implements DropTargetListener {
            private static final long serialVersionUID = 7247130270544835594L;
          
            public SupportDragTextArea() {  
            }  
              
            public void dragEnter(DropTargetDragEvent dtde) {              
            }  
          
            public void dragOver(DropTargetDragEvent dtde) {              
            }  
          
            public void dropActionChanged(DropTargetDragEvent dtde) {               
            }  
          
            public void dragExit(DropTargetEvent dtde) {                
            }
          
            public void drop(DropTargetDropEvent dtde) {
                this.setText("");    
                if(dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor)){  
                    dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
                    try {
                        Transferable tr = dtde.getTransferable();  
                        Object obj = tr.getTransferData(DataFlavor.javaFileListFlavor);  
                        @SuppressWarnings("unchecked")
                        List<File> files = (List<File>)obj;  
                        for(int i = 0; i < files.size(); i++){  
                            append(files.get(i).getAbsolutePath());  
                        }  
                    } catch (UnsupportedFlavorException ex) {  
                    } catch (IOException ex) {
                    }  
                } else if (dtde.isDataFlavorSupported(DataFlavor.stringFlavor) ) {
                    dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
                    try {
                        Transferable tr = dtde.getTransferable();  
                        String str=(String) tr.getTransferData(DataFlavor.stringFlavor);  
                        append(str);
                    } catch (UnsupportedFlavorException ex) {        
                    } catch (IOException ex) {        
                    }  
                }
            }  
    }

    支持拖拽的 JTextArea.   支持 mac 和 windows 平台。 走过几个坑,记录下

  • 相关阅读:
    tf导出pb文件,以及如何使用pb文件
    word2vec入门理解的博客整理
    简单的RNN和BP多层网络之间的区别
    图像中用到的信息论中的一些概念公式
    raw文件转mha文件
    mha格式的CT体数据转为jpg切片
    在MySQL的表中增加一列
    ES7学习笔记(二)ES的集群原理
    MySQL中的幻读,你真的理解吗?
    ES7学习笔记(一)Elasticsearch的安装与启动
  • 原文地址:https://www.cnblogs.com/lesten/p/10611098.html
Copyright © 2011-2022 走看看