Newsgroup: it.comp.java
Titolo: Copiare clipboard di WinXp

e possibile con java copiare una stringa alfanumerica
dalla clipboard di WinXp in una stringa.
Avete degli esempi di codice?
Che api devono essere utilizzate?
Vi ringrazio
Saluti

 dalla clipboard di WinXp in una stringa.
http://www.javapractices.com/topic/TopicAction.do?Id=82


Per accedere alla clipboard è sufficiente invocare il metodo
'getSystemClipboard()' della classe 'java.awt.Toolkit' che restituisce
l'istanza singleton della 'Clipboad' del sistema:
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard
();
Per recuperarne il contenuto dovrai poi richiamare il metodo
'getContents' di 'java.awt.datatransfer.Clipboard' che restituisce un
oggetto di tipo 'java.awt.datatransfer.Transferable'. Come argomento
del metodo puoi passare tranquillamente 'null' in quanto si tratta di
un argomento che attualmente non viene utilizzato da Java.
Transferable contents = clipboard.getContents(null);
Una volta ottenuto questo riferimento basterà controllare che sia
presente del contenuto testuale, tramite la chiamata
'contents.isDataFlavorSupported(DataFlavor.stringFlavor)', e quindi
recuperarne il valore mediante il metodo 'getTransferData':
if(contents != null && contents.isDataFlavorSupported
(DataFlavor.stringFlavor))
   String str = (String)contents.getTransferData
(DataFlavor.stringFlavor)
Il metodo potrebbe tuttavia sollevare le seguenti eccezioni, che
andrebbero adeguatamente gestite:
java.io.IOException
java.awt.datatransfer.UnsupportedFlavorException
Questo lungo giro per recuperare il contenuto dalla clipboard è dovuto
al fatto che nella clipboard può risiedere del contenuto diverso dal
semplice testo. Inoltre sistemi operativi diversi potrebbero gestire
tipi di contenuto diversi, per cui è necessario prendere tutte le
precauzioni del caso!
Il codice più breve che fa' al caso tuo potrebbe tuttavia essere il
seguente:
String str;
try{
  str = (String)Toolkit.getDefaultToolkit().getSystemClipboard
().getContents(null).getTransferData(DataFlavor.stringFlavor)
}catch(Exception e){
  str = "";
}
Attenzione perché nel breve codice che ti ho riportato non stiamo
difatti gestendo le eccezioni ma semplicemente settando la nostra
variabile String str con una stringa vuota se qualcosa va male
(incluso l'eventuale NullPointerException se il 'content' della
Clipboard è null): tutto ciò non è proprio il massimo in termini di
gestione delle eccezioni ma è certamente un codice più veloce e
performante di qualsiasi versione analoga con 'if' e controlli.
Ti consiglio comunque di dare un'occhiata alle API Java e in
particolare a:
http://java.sun.com/javase/6/docs/api/java/awt/Toolkit.html#getSystemClipboard()
http://java.sun.com/javase/6/docs/api/java/awt/datatransfer/Clipboard.html#getContents(java.lang.Object)
http://java.sun.com/javase/6/docs/api/java/awt/datatransfer/Transferable.html#getTransferData(java.awt.datatransfer.DataFlavor)
L'argomento, inoltre, è strettamente correlato al 'drag e drop' per il
quale - se può interessarti - è disponibile un tutorial della Sun a
questo indirizzo:
http://java.sun.com/docs/books/tutorial/uiswing/dnd/intro.html
Fammi sapere,
ciao!

ti ringrazio.
Ho deciso di utilizzare il codice come dici, piů
semplice, perche quello che devo copiare dalla clip
e sempre del testo ascii.
Ciao

 Ciao
Mi fa piacere!
Con la scusa della risposta alla tua domanda ho scritto un thread su
questo argomento nel mio blog.. ne approfitto per lasciarne un link ;)
http://just-share-it.blogspot.com
http://just-share-it.blogspot.com/2009/03/come-accedere-alla-clipboard-del.html