Copier et coller du texte vers le Clipboard
Pour fransférer du texte avec l'objet Clipboard de Java, la class comporte deux fonctions:getAsText: Coller du texte à partir du presse-papier (ctrl+v)
setAsText: Copier du texte vers le presse-papier (ctrl+c)
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Presse-papier : Copier / coller du texte
* http://www.fobec.com/java/912/presse-papier-copier-coller-texte.html
* @author Fobec 2010
*/
public class ClipboardTransfert {
/**
* Copier du texte vers le presse-papier
* @param text String texte à copier
*/
public static void setAsText(String text) {
if (text != null) {
StringSelection contents = new StringSelection(text);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(contents, null);
}
}
/**
* Coller du texte à partir du presse-papier
* @return String texte contenu ou vide si le format est différent de string
*/
public static String getAsText() {
String clipText = "";
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable contents = clipboard.getContents(null);
if ((contents != null) && contents.isDataFlavorSupported(DataFlavor.stringFlavor)) {
try {
clipText = (String) contents.getTransferData(DataFlavor.stringFlavor);
} catch (UnsupportedFlavorException ex) {
Logger.getLogger(ClipboardTransfert.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(ClipboardTransfert.class.getName()).log(Level.SEVERE, null, ex);
}
}
return clipText;
}
}
Exemple dans un composant JEditField
//Coller dans un jEditField
jEditField.setText(ClipboardTransfert.getAsText());
//Copier depuis un jEditField
ClipboardTransfert.setAsText(jEditField.getText());
La class ClipboardTransfert peut etre utilisée dans tous les composants JAVA pour copier ou coller du texte vers le presse-papier. Pour cela, appeler les fonctions à partir du PopupMenu ou à partir d'un bouton pour transférer du texte vers le Clipboard.