|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.iharder.dnd.FileDrop
public class FileDrop
This class makes it easy to drag and drop files from the operating system to a Java program. Any java.awt.Component can be dropped onto, but only javax.swing.JComponents will indicate the drop event with a changed border.
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, rharder@usa.net
2007-09-12 Nathan Blomquist -- Linux (KDE/Gnome) support added.
| Constructor Summary | |
|---|---|
FileDrop(java.awt.Component c,
boolean recursive,
DropListener listener)
Constructor with a default border and the option to recursively set drop targets. |
|
FileDrop(java.awt.Component c,
javax.swing.border.Border dragBorder,
boolean recursive,
DropListener listener)
Constructor with a specified border and the option to recursively set drop targets. |
|
FileDrop(java.awt.Component c,
javax.swing.border.Border dragBorder,
DropListener listener)
Constructor with a specified border |
|
FileDrop(java.awt.Component c,
DropListener listener)
Constructs a 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. |
|
FileDrop(java.io.PrintStream out,
java.awt.Component c,
boolean recursive,
DropListener listener)
Constructor with a default border, debugging optionally turned on and the option to recursively set drop targets. |
|
FileDrop(java.io.PrintStream out,
java.awt.Component c,
javax.swing.border.Border dragBorder,
boolean recursive,
DropListener listener)
Full constructor with a specified border and debugging optionally turned on. |
|
FileDrop(java.io.PrintStream out,
java.awt.Component c,
javax.swing.border.Border dragBorder,
DropListener listener)
Constructor with a specified border and debugging optionally turned on. |
|
FileDrop(java.io.PrintStream out,
java.awt.Component c,
DropListener listener)
Constructor with a default border and debugging optionally turned on. |
|
| Method Summary | |
|---|---|
static void |
main(java.lang.String[] args)
Runs a sample program that shows dropped files |
static boolean |
remove(java.awt.Component c)
Removes the drag-and-drop hooks from the component and optionally from the all children. |
static boolean |
remove(java.io.PrintStream out,
java.awt.Component c,
boolean recursive)
Removes the drag-and-drop hooks from the component and optionally from the all children. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FileDrop(java.awt.Component c,
DropListener 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.
public FileDrop(java.awt.Component c,
boolean recursive,
DropListener listener)
c - Component on which files will be dropped.recursive - Recursively set children as drop targets.listener - Listens for filesDropped.
public FileDrop(java.io.PrintStream out,
java.awt.Component c,
DropListener listener)
out - PrintStream to record debugging info or null for no
debugging.c - Component on which files will be dropped.listener - Listens for filesDropped.
public FileDrop(java.io.PrintStream out,
java.awt.Component c,
boolean recursive,
DropListener 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.
public FileDrop(java.awt.Component c,
javax.swing.border.Border dragBorder,
DropListener listener)
c - Component on which files will be dropped.dragBorder - Border to use on JComponent when dragging
occurs.listener - Listens for filesDropped.
public FileDrop(java.awt.Component c,
javax.swing.border.Border dragBorder,
boolean recursive,
DropListener 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.
public FileDrop(java.io.PrintStream out,
java.awt.Component c,
javax.swing.border.Border dragBorder,
DropListener 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.
public FileDrop(java.io.PrintStream out,
java.awt.Component c,
javax.swing.border.Border dragBorder,
boolean recursive,
DropListener 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.| Method Detail |
|---|
public static boolean remove(java.awt.Component c)
Container.
c - The component to unregister as a drop target
public static boolean remove(java.io.PrintStream out,
java.awt.Component c,
boolean recursive)
out - Optional PrintStream for logging drag
and drop messagesc - The component to unregisterrecursive - Recursively unregister components within a containerpublic static final void main(java.lang.String[] args)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||