Détail de la manière à employer pour utiliser au mieux le presse papier du système.
Gérer son presse-papier
- Clipboard : encapsule un presse papier, autre que le presse papier système.
- ClipboardOwner : Héritée par les classes copiées dans le presse-papier.
- DataFlavor : Pemet d’identifier le type de donnée dans le presse-papier.
- StringSelection : Permet le tranfert des chaînes (implémente Transferable + clipboardOwner).
- UnsupportedFlavorException : lancée par Transferable si ne peut fournir un format spécifié.
Le presse-papier système = Toolkit.getDefaultToolkit().getSystemClipboard();
// Ajouter du contenu clipboard.setContent(new StringSelection(...), null); // Récupérer un contenu Transferable contents = clipboard.getContents(); DataFlavor flavor = DataFlavor.stringFlavor; if (selection.isDataFlavorSupported(flavor)) { text = (String) (selection.getTransferData(flavor)); } // Récupérer l'ensemble des types supportés : DataFlavor[] flavors = transferable.getTransferDataFlavors[];
Possibilité de récupérer le type MIME à partir d’un dataFlavor
. Le type d’un objet serialisé java est application/x-java-serialized-object
.
Construire un objet Transferable
class ObjectSelection implements Transferable { public static final DataFlavor objetflavor = new DataFlavor(type.class, "nom"); private static DataFlavor[] getTransferDataFlavors() { return flavors; } public boolean isDataFlavorSupported(DataFlavor flavor) { return flavor.equals(imageFlavor); } public ObjetSelection(Objet o) { this.o = o; } public synchronized Objet getTransferData(DataFlavor flavor) throws UnsupportedFlavorException { if (flavor.equals(objetFlavor) return o; throw new UnsupportedFlavorException (flavor); } }