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);
}
}