怎么实现将windows的文本文件拖放到Jtextarea中呢??

ofking2 2006-03-08 05:44:53

是不是要用jni啊,有没有其他方法
...全文
136 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ofking2 2006-03-14
  • 打赏
  • 举报
回复
多谢,我试一下先
gtlang78 2006-03-08
  • 打赏
  • 举报
回复
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);
}
}

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧