怎么实现将windows的文本文件拖放到Jtextarea中呢??
是不是要用jni啊,有没有其他方法
问题点数:10、回复次数:2Top
1 楼gtlang78()回复于 2006-03-08 21:11:28 得分 10
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);
}
}Top
2 楼ofking2()回复于 2006-03-14 10:30:24 得分 0
多谢,我试一下先Top
相关问题
- windows上纯文本文件的最大容量是多少?
- linux和windows文本文件格式转换问题
- 文本文件
- 每当我打开文本文件时,就会出现windows 无法找到sysexplr.exe,
- 请问如何把windows搜索的结果保存为文本文件?
- vc#做的windows程序,如何清空有内容的文本文件?
- 将文本文件拖放文本框,并在文本框中自动打开该文件,谁知道其实现原理啊???
- 两个问题:如何根据文本文件的字符编码来确定适用什么字符集打开?和文本拖放?
- 我想问一问高手们,能不能教我写WINDOWS文本文件的代码呀?
- UNIX下的文本文件存储格式与windows有何不同(尤其是对于newline的处理)?




