
330
Chapter 9
C H A P T E R N I N E
Drag-and-Drop
Hacks 65–69
Several years ago, the Swing team introduced a pair of APIs for data trans-
fer:
java.awt.datatransfer and java.awt.dnd (Drag and Drop). The former
abstracts the concept of data exchange to and from your application (partici-
pating with either Java or native applications) and provides clipboard-based
copy-and-paste functionality. The latter particularizes these abstractions to
the specifics of drag-and-drop behavior. While many developers use these
APIs for working with unstyled clipboard text only, you can do much more.
Both Drag and Drop events and the clipboard support images,
URLs, Files,
and even custom Java objects.
H A C K
#65
Drag-and-Drop with Files Hack #65
Drag files from your application directly to the desktop, complete with
translucent icons.
This hack shows you how to go much further than mere clipboard access by
digging into the lower levels of the Drag and Drop APIs and building a pro-
gram that can save files directly to the desktop via dragging, complete with
proper file icons and drag feedback.
When you use an editor to write a large document, you often save it to a
particular location on your filesystem—in a Projects folder perhaps. This is
because you will keep the file around for a long time, so you want to store it
for later use. Small documents, however, are often created for transient rea-
sons. I often write a few ...