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

Publié par Yannick dans tuto

Sur un de mes sites j'ai vraiment du mal a gerer le gzip sur 1and1, Je vais tout de suite tester tout ca et je vous tiens informe :)

Publié par traitstone dans CMS

c'est bou et tres bon chose

Publié par need help dans java

Merci pour cet exemple.
Est ce possible de récupérer le flux video d'une camera ou bien une appareil photo branché par USB.

Merci d'avance.

Publié par foufou0406 dans CMS

merci !!!

Publié par Helo dans java

SVP Comment faire fonctionner le bouton pause ?