Nuru Nabiyev
05/19/2025, 1:13 PMval clipboard = Toolkit.getDefaultToolkit().systemClipboard
val fileList = listOf(file.value)
val transferable = object : Transferable {
override fun getTransferData(flavor: DataFlavor) =
if (flavor == DataFlavor.javaFileListFlavor) fileList else throw UnsupportedOperationException()
override fun isDataFlavorSupported(flavor: DataFlavor) = flavor == DataFlavor.javaFileListFlavor
override fun getTransferDataFlavors() = arrayOf(DataFlavor.javaFileListFlavor)
}
clipboard.setContents(transferable, null)
Alexander Maryanovsky
05/19/2025, 1:28 PMDaniel Pitts
05/23/2025, 3:37 PMDaniel Pitts
05/23/2025, 3:44 PMTimo Drick
05/28/2025, 3:54 PMNuru Nabiyev
05/28/2025, 4:11 PMTimo Drick
05/28/2025, 6:24 PMobject ClipboardImage {
/**
* Place an image on the system clipboard.
*
* @param image - the image to be added to the system clipboard
*/
fun write(image: ImageBitmap) {
val transferable = ImageTransferable(image.toAwtImage())
Toolkit.getDefaultToolkit().systemClipboard.setContents(transferable, null)
}
internal class ImageTransferable(private val image: Image) : Transferable {
@Throws(UnsupportedFlavorException::class)
override fun getTransferData(flavor: DataFlavor): Any {
if (isDataFlavorSupported(flavor)) {
return image
} else {
throw UnsupportedFlavorException(flavor)
}
}
override fun isDataFlavorSupported(flavor: DataFlavor) = flavor === DataFlavor.imageFlavor
override fun getTransferDataFlavors() = arrayOf(DataFlavor.imageFlavor)
}
}