java-bits #1: filedragdrop handler
drop a file from the explorer to a textbox and make the path the text of that textbox:
// imports omitted, dont know why... public class Foo extends TransferHandler { //... /* DRAG & DROP */ @Override public boolean importData(JComponent comp, Transferable t) { // Make sure we have the right starting points if (!(comp instanceof JTextField)) { return false; } if (!t.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) { return false; } // Grab the tree, its model and the root node JTextField textField = (JTextField) comp; try { List data = (List) t.getTransferData(DataFlavor.javaFileListFlavor); for (Object object : data) { File f = (File) object; textField.setText(f.getAbsolutePath()); } return true; } catch (UnsupportedFlavorException ufe) { System.err.println("Ack! we should not be here.\nBad Flavor."); } catch (IOException ioe) { System.out.println("Something failed during import:\n" + ioe); } return false; } @Override public boolean canImport(JComponent comp, DataFlavor[] transferFlavors) { if (comp instanceof JTextField) { for (DataFlavor transferFlavor : transferFlavors) { if (transferFlavor.equals(DataFlavor.javaFileListFlavor)) { return true; } } return false; } return false; } }
