public class FileDrop extends Object
To use this class, construct a new FileDrop by passing it the target component and a Listener to receive notification when file(s) have been dropped. Here is an example:
JPanel myPanel = new JPanel();
new FileDrop( myPanel, new FileDrop.Listener()
{ public void filesDropped( java.io.File[] files )
{
// handle file drop
...
} // end filesDropped
}); // end FileDrop.Listener
You can specify the border that will appear when files are being dragged by calling the constructor with a javax.swing.border.Border. Only JComponents will show any indication with a border.
You can turn on some debugging features by passing a PrintStream object (such as System.out) into the full constructor. A null value will result in no extra debugging information being output.
I'm releasing this code into the Public Domain. Enjoy.
Original author: Robert Harder, rob@iharder.net
Additional support:
| Modifier and Type | Class and Description |
|---|---|
static interface |
FileDrop.Listener
Implement this inner interface to listen for when files are dropped.
|
| Modifier | Constructor and Description |
|---|---|
protected |
FileDrop(Component c,
boolean recursive,
FileDrop.Listener listener)
Constructor with a default border and the option to recursively set drop
targets.
|
protected |
FileDrop(Component c,
Border dragBorder,
boolean recursive,
FileDrop.Listener listener)
Constructor with a specified border and the option to recursively set
drop targets.
|
protected |
FileDrop(Component c,
Border dragBorder,
FileDrop.Listener listener)
Constructor with a specified border
|
|
FileDrop(Component c,
FileDrop.Listener listener)
|
protected |
FileDrop(PrintStream out,
Component c,
boolean recursive,
FileDrop.Listener listener)
Constructor with a default border, debugging optionally turned on and the
option to recursively set drop targets.
|
protected |
FileDrop(PrintStream out,
Component c,
Border dragBorder,
boolean recursive,
FileDrop.Listener listener)
Full constructor with a specified border and debugging optionally turned
on.
|
protected |
FileDrop(PrintStream out,
Component c,
Border dragBorder,
FileDrop.Listener listener)
Constructor with a specified border and debugging optionally turned on.
|
protected |
FileDrop(PrintStream out,
Component c,
FileDrop.Listener listener)
Constructor with a default border and debugging optionally turned on.
|
| Modifier and Type | Method and Description |
|---|---|
static boolean |
remove(Component c)
Removes the drag-and-drop hooks from the component and optionally from
the all children.
|
protected static boolean |
remove(PrintStream out,
Component c,
boolean recursive)
Removes the drag-and-drop hooks from the component and optionally from
the all children.
|
public FileDrop(Component c, FileDrop.Listener listener)
FileDrop with a default light-blue border and, if
c is a Container, recursively sets all
elements contained within as drop targets, though only the top level
container will change borders.c - Component on which files will be dropped.listener - Listens for filesDropped.protected FileDrop(Component c, boolean recursive, FileDrop.Listener listener)
c - Component on which files will be dropped.recursive - Recursively set children as drop targets.listener - Listens for filesDropped.protected FileDrop(PrintStream out, Component c, FileDrop.Listener listener)
out - PrintStream to record debugging info or null for no debugging.c - Component on which files will be dropped.listener - Listens for filesDropped.protected FileDrop(PrintStream out, Component c, boolean recursive, FileDrop.Listener listener)
out - PrintStream to record debugging info or null for no debugging.c - Component on which files will be dropped.recursive - Recursively set children as drop targets.listener - Listens for filesDropped.protected FileDrop(Component c, Border dragBorder, FileDrop.Listener listener)
c - Component on which files will be dropped.dragBorder - Border to use on JComponent when dragging occurs.listener - Listens for filesDropped.protected FileDrop(Component c, Border dragBorder, boolean recursive, FileDrop.Listener listener)
c - Component on which files will be dropped.dragBorder - Border to use on JComponent when dragging occurs.recursive - Recursively set children as drop targets.listener - Listens for filesDropped.protected FileDrop(PrintStream out, Component c, Border dragBorder, FileDrop.Listener listener)
out - PrintStream to record debugging info or null for no debugging.c - Component on which files will be dropped.dragBorder - Border to use on JComponent when dragging occurs.listener - Listens for filesDropped.protected FileDrop(PrintStream out, Component c, Border dragBorder, boolean recursive, FileDrop.Listener listener)
out - PrintStream to record debugging info or null for no debugging.c - Component on which files will be dropped.dragBorder - Border to use on JComponent when dragging occurs.recursive - Recursively set children as drop targets.listener - Listens for filesDropped.public static boolean remove(Component c)
Container.c - The component to unregister as a drop targetprotected static boolean remove(PrintStream out, Component c, boolean recursive)
out - Optional PrintStream for logging drag and drop
messagesc - The component to unregisterrecursive - Recursively unregister components within a containerCopyright © 2018–2021 Morphonets. All rights reserved.