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 5035 fois
Public
Internaute
Auteur de la publication
Fobec
Admin
Auteur de 265 articles
|BIO_PSEUDO|
Commentaires récents

Publié par Toluar dans tuto

Je viens de lire votre article que seulement aujourd'hui.
Une autre solution consiste a regarder le user-agent utilise par le navigateur du visiteur. Les crawlers sont clairement identifies ;-)...

Publié par fobec dans java

La boucle de lecture est corrigée et prend en compte l'état pause. Sympa d'avoir signaler l'erreur

Publié par pat59 dans CMS

j espere que le jeu vas fonctionner car vous le donnez mais il est bloqué snifff

Publié par Fobec dans logiciel

Souhaitez-vous d'informations sur le logiciel foWhoisClient ou sur l'utilisation des Whois ?

Publié par BOKOMBEJEAN dans java

code source excellente,
maintenant comment l'afficher dans une zone de texte ou un champ de texte?