Presse-papier: copier et coller du texte

Transférer du texte avec l'objet Clipboard de Java.
- 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
 * @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
 
//Coller dans un jEditField
jEditField.setText(ClipboardTransfert.getAsText());

//Copier depuis un jEditField
ClipboardTransfert.setAsText(jEditField.getText());

Commentaire des internautes
avatar
angelofchaos le 26/01/2012
Marche très bien , merci beaucoup :)
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour26/05/2010
VisualisationVu 1017 fois
PublicInternaute
CategorieJAVA - Sources - AWT
Auteur de l'article
fobec fobec
connecté le 14/02/2012
36 ans - France Nord-Est
45 articles dans la section
Contacter l'auteur
Partager l'article