Publié le 26/05/2010
Auteur fobec
Réseaux sociaux
0 partages
0 tweets
0 plus
1 commentaires

Presse-papier: copier et coller du texte

Comment utiliser le clipboard (le presse papier) du système d'exploitation pour échanger des données entre votre application Java et autres applications. Dans certains coposants comme par exemple le JTextArea, les fonctions copier, couper et coller sont incluses. Dans l'article ci-dessous, nous allons voir comment copier et coller du texte vers le presse-papier à partir d'une application JAVA

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.

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar angelofchaos

Publié par angelofchaos

le 26/01/2012 à 10:58:36

Marche très bien , merci beaucoup :)

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
26/05/2010
Visualisation
vu 4910 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 263 articles
|BIO_PSEUDO|
Commentaires récents

Publié par fobec dans logiciel

Bravo, le soft a trouvé quelques 2400 liens sur le site en un temps record.

Publié par ali dans logiciel

it is very good i am very happy becose for hand cap helpn tha is a good work

Publié par Helo dans java

SVP Comment faire fonctionner le bouton pause ?

Publié par Fobec dans news

Bonjour,
la localisation des adresses ip utilise plusieurs algo de recherche de position geographique. La precision du rapport d'analyse correspond la qualite de la localisation:
9/10 la locali...

Publié par romainN dans tuto

Bonjour,

Super tuto bravo! Je suis sur Wordpress 3.5 et 1and1 et la ligne HTML que je dois modifier est prsente dans plusieurs php et elle comprend des echo:

echo \\ dans le fichier wp-...