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.