是不是要用jni啊,有没有其他方法

解决方案 »

  1.   

    import java.awt.BorderLayout;
    import java.awt.datatransfer.DataFlavor;
    import java.awt.datatransfer.Transferable;
    import java.awt.datatransfer.UnsupportedFlavorException;
    import java.io.File;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.List;import javax.swing.*;public class FileTransferHandler extends TransferHandler {
    private JTextArea textarea;    public FileTransferHandler(JTextArea filePathList) {
           this.textarea = filePathList;
        }    public boolean importData(JComponent c, Transferable t) {
            try {
             List files = (List)t.getTransferData(DataFlavor.javaFileListFlavor);
             FileReader reader = new FileReader((File)files.get(0));
             textarea.read(reader, null);
             reader.close();
             return true;
            } catch (UnsupportedFlavorException ufe) {
             ufe.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
            return false;
        }    public boolean canImport(JComponent c, DataFlavor[] flavors) {
          for (int i = 0; i < flavors.length; i++) {
            if (DataFlavor.javaFileListFlavor.equals(flavors[i])) {
                return true;
            }
          }
          return false;
        }    public static void main(String[] args)
    {
         JTextArea textarea = new JTextArea(10, 20);
         textarea.setTransferHandler(new FileTransferHandler(textarea));
        
    JFrame f = new JFrame("拖动文本文件到这个窗口里面");
    f.getContentPane().add(new JScrollPane(textarea), BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }