swing中dragEnter的问题
网上看到一段代码如下
主类是
public class DropDragDemo {
public static void main(String[] args){
JFrame frame = new JFrame("文件拖拽Demo");
frame.setSize(500, 400);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setBorder(BorderFactory.createTitledBorder("文件拖拽演示"));
JTextArea textArea = new DropDragSupportTextArea();
JScrollPane jsp = new JScrollPane();
//滚动窗口
jsp.setViewportView(textArea);
textArea.setColumns(40);
textArea.setRows(10);
panel.add(jsp);
frame.add(panel);
frame.setVisible(true);
}
}
副类是
public class DropDragSupportTextArea extends JTextArea implements DropTargetListener{
private DropTarget dropTarget;
public static String filename = null;
public DropDragSupportTextArea() {
//注册DropTarget,并将它与组件相连,处理哪个组件的相连
//即连通组件(第一个this)和Listener(第二个this)
dropTarget = new DropTarget(this,DnDConstants.ACTION_COPY_OR_MOVE, this, true);
}
/**
* 拖入文件或字符串,这里只说明能拖拽,并未打开文件并显示到文本区域中
*/
@SuppressWarnings("unchecked")
public void dragEnter(DropTargetDragEvent dtde) {
DataFlavor[] dataFlavors = dtde.getCurrentDataFlavors();
if(dataFlavors[0].match(DataFlavor.javaFileListFlavor)){
try {
Transferable tr = dtde.getTransferable();
Object obj = tr.getTransferData(DataFlavor.javaFileListFlavor);
List<File> files = (List<File>)obj;
for(int i = 0; i < files.size(); i++){
append(files.get(i).getAbsolutePath()+"\r\n");
}
} catch (UnsupportedFlavorException ex) {
} catch (IOException ex) {
}
}
}
public void dragOver(DropTargetDragEvent dtde) {
}
public void dropActionChanged(DropTargetDragEvent dtde) {
}
public void dragExit(DropTargetEvent dte) {
}
public void drop(DropTargetDropEvent dtde) {
}
}
问题就是 我拖拽某个文件进了textArea 如何在主类中调到这个文件的绝对路径
最好只要取第一行的那个文件
现在就是想不出来,还请各位大虾指点一下