estoy utilizando este código en una aplicación Java Swing para copiar archivos en el portapapeles:Cómo cortar un archivo en el portapapeles en Java?
final List<File> files = new ArrayList<File>();
// ... code to fill list omitted ... //
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
new Transferable() {
@Override
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[] { DataFlavor.javaFileListFlavor };
}
@Override
public boolean isDataFlavorSupported(DataFlavor flavor) {
return DataFlavor.javaFileListFlavor.equals(flavor);
}
@Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException {
return files;
}
}, null
);
Funciona, en el que puedo ir al Explorador de Windows y Ctrl + V y los archivos de subir (es de esperar que funciona en otros sistemas operativos, aunque no probado). Me gustaría implementar cortar también, pero no sé cómo hacer para que el sistema sepa que esa es la acción o, alternativamente, cómo obtener retroalimentación para cada archivo copiado con éxito para poder eliminarlo de su ubicación original a mano.
Si esto no es imposible, ¿alguna sugerencia sobre cómo debo manejar esto? Me gustaría poder cortar & pegar dentro de la aplicación también (por separado para intercambiar archivos con el explorador de sistema operativo).
no creo que cortar es posible en Java aún. – rjdkolb
Oh, el código funciona muy bien en Kubuntu Linux (KDE), excepto por el hecho de que el programa Java no debe salir antes de que el usuario pegue el archivo. lea más aquí: http://en.wikipedia.org/wiki/X_Window_selection – rjdkolb