The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available.
See Java Language Changes for a summary of updated language features in Java SE 9 and subsequent releases.
See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases.
The first set of methods we will examine are used for exporting data from a component. These methods are invoked for the drag gesture, or the cut/copy action, when the component in question is the source of the operation. The TransferHandler
methods for exporting data are:
getSourceActions(JComponent)
— This method is used to query what actions are supported by the source component, such as COPY
, MOVE
, or LINK
, in any combination. For example, a customer list might not support moving a customer name out of the list, but it would very likely support copying the customer name. Most of our examples support both COPY
and MOVE
.createTransferable(JComponent)
— This method bundles up the data to be exported into a
Transferable
object in preparation for the transfer.exportDone(JComponent, Transferable, int)
— This method is invoked after the export is complete. When the action is a MOVE
, the data needs to be removed from the source after the transfer is complete — this method is where any necessary cleanup occurs.Here are some sample implementations of the export methods:
int getSourceActions(JComponent c) { return COPY_OR_MOVE; } Transferable createTransferable(JComponent c) { return new StringSelection(c.getSelection()); } void exportDone(JComponent c, Transferable t, int action) { if (action == MOVE) { c.removeSelection(); } }
Next we will look at the TransferHandler
methods required for data import.