Le Presse papiers

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *