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

Publié par nico dans java

Petite erreur constate.
Apparemment il faut remplacer :
&mailTo = &?body=Envoyer un email avec Java
par &mailTo = < et commercial sans '<' et '>' &body=Envoyer un email avec Java

Publié par revente lmnp dans logiciel

J'aimerais avoir plus d'informations sur cette article, si quelqu'un peux m'en donnee d'avantage, je vous en remercie d'avance.

Publié par mohammed dans java

Bonjour ,Merci pour ce travail ,juste j'ai une question pour ce qui concerne les textes avec les caracteres speciaux comment faire??

Publié par amelia dans java

pour 30 sa donne 1346269

Publié par brayan dans logiciel

je vous retour modem ip pour configury net firwell