import java.awt.datatransfer.*; static void listEnableTextDrag(final JList list) { TransferHandler th = new TransferHandler { @Override public int getSourceActions(JComponent c) { ret COPY; } @Override protected Transferable createTransferable(JComponent c) { O o = selectedListElement(list); //print("Value: " + o); return new StringSelection(str(o)); } }; listEnableDrag(list, th); }