NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Guida Java 2D - Capitolo 46: Utilizzo della clipboard di sistema (copia e incolla dei dati tra le applicazioni).

 

Java permette di trasferire testo, immagini, elenchi di file ecc... tra un programma Java ed un programma nativo del sistema in uso avvalendosi della clipboard del sistema, mediante cioè il noto meccanismo del 'copia e incolla'.

 

Non tutti i dati possono però essere copiati, ma solo quelli il cui tipo appartiene al set di tipi definiti dalla classe DataFlavor; tale set, comunque, è molto ampio.

 

Per avvalerci di DataFlavor dovremo effettuare l'import del package java.awt.datatransfer.DataFlavor .

 

 

 

DataFlavor fornisce una serie di oggetti statici per diversi tipi di dato; tra questi, menzioniamo:

DataFlavor.imageFlavor Rappresenta un'immagine.
DataFlavor.javaFileListFlavor Rappresenta una lista di file.
DataFlavor.javaJVMLocalObjectMimeType Rappresenta un oggetto da trasferire nella stessa JVM.
DataFlavor.javaRemoteObjectMimeType Rappresenta un oggetto da trasferire tra JVM differenti.
DataFlavor.javaSerializedObjectMimeType Rappresenta un oggetto serializzabile.
DataFlavor.stringFlavor Rappresenta una stringa.

 

Oltre ad essere di un tipo consentito, poi, un oggetto deve implementare l'interfaccia Transferable per essere trasferibile.

 

Questa interfaccia ci obbliga a riscrivere i metodi:

getTransferData(DataFlavor flavor)   :   Object Restituisce l'oggetto che rappresenta il dato da trasferire.
getTransferDataFlavors()   :   DataFlavor[] Restituisce, in un array di DataFlavor, i tipi di dato che possono essere forniti.
isDataFlavorSupported(DataFlavor flavor)   :   boolean Restituisce true se il tipo di dato passato come parametro è supportato, false altrimenti.

 

Per le stringhe, è prevista un'implementazione ad hoc di Transferable: StringSelection, che ha costruttore

  • StringSelection(String data) .

 

Tutto quanto detto finora riguarda, in effetti, i dati da trasferire; a rappresentare la clipboard del sistema ci pensa, invece la classe Clipboard.

 

E' possibile ottenere un'istanza di Clipboard mediante il metodo di Toolkit:

  • getSystemClipboard()   :   Clipboard

che restituisce, appunto, la clipboard del sistema.

 

A questo punto potremo inserire o recuperare dati nella/dalla clipboard del sistema mediante i metodi di Clipboard:

getContents(Object requestor)   :   Transferable Restituisce i dati presenti nella clipboard del sistema.
setContents(Transferable contents, ClipboardOwner owner)   :   void Imposta i dati nella clipboard del sistema.

 

 
Vai all'inizio della pagina