# Drag & Drop ## TransferHandler * `component.setDragEnabled(boolean)` * `component.setDropMode(DropMode)` * `component.setTransferHandler(TransferHandler)` ### 보내기 * `getSourceActions(JComponent)` : 보내는 컴포넌트가 어떤 액션을 지원하는지. * `createTransferable(JComponent)` : 데이터를 묶어서 Transferable 객체로 만든다. * `exportDone(JComponent,Transferable,int)` : 내보내기가 완료된 이후에 호출된다. ### 받기 * `canImport(Transferable.TransferSupport)` : 드래깅 동작 중 반복적으로 호출되며, 받는 컴퍼넌트가 드롭 동작을 지원하면 true를 반환한다. * `importData(Transferable.TransferSupport)` : 드롭 동작 후에 호출되며, 데이터 전송이 성공한 경우에는 true를 반환한다. ## TransferSupport * `getComponent()` * `getDropAction()` : COPY | MOVE | LINK | COPY_OR_MOVE | NONE * `getUserDropAction()` * `getSourceDropActions()` * `getDataFlavors()` * `isDataFlavorSupported(DataFlavor)` * `getTransferable()` * `getDropLocation()` * `setShowDropLocation(boolean)` ## DataFlavor * allHtmlFlavor * fragmentHtmlFlavor * imageFlavor * javFileListFlavor * javaJVMLocaleObjectMimeType * javaRemoteObjectMimeType * javaSerializedObjectMimeType * selectionHtmlFlavor * stringFlavor ## DropLocation * JList.DropLocation * `isInsert()` * `getIndex()` * JTree.DropLocation * `getChildIndex()` * `getPath()` * JTable.DropLocation * `isInsertRow()` * `isInserColumn()` * `getRow()` * `getColumn()` * JTextComponent.DropLocation * `getIndex()` * `getBias()`