Java Copier le texte dans le presse-papiers
-
Créer une instance de presse-papiers à l’aide de la classe
Toolkit
etClipboard
en Java -
Copier la chaîne dans le presse-papiers à l’aide de la classe
StringSelection
en Java - Copier du texte dans le presse-papiers dans les applications JavaFX
![Java Copier le texte dans le presse-papiers](/img/Java/feature-image---java-copy-text-to-clipboard.webp)
Cet article traite de la copie du texte d’une application Java vers le presse-papiers.
Java fournit plusieurs éléments qui affichent le texte dans une application Java. Plusieurs fois, le texte doit être copié dans le presse-papiers pour être exporté vers d’autres applications informatiques.
Créer une instance de presse-papiers à l’aide de la classe Toolkit
et Clipboard
en Java
Java fournit une superclasse nommée Toolkit
qui contient une variété de méthodes pour implémenter les fonctionnalités basées sur l’interface graphique en Java.
La classe a une méthode statique nommée getDefaultToolkit()
qui renvoie une instance par défaut de la classe Toolkit
. La définition de la méthode est donnée ci-dessous.
public static Toolkit getDefaultToolkit()
Une fois que vous obtenez l’instance par défaut de Toolkit
, vous pouvez l’utiliser pour invoquer la méthode getSystemClipboard()
plus loin. Cette méthode abstraite renvoie une instance singleton du presse-papiers système.
La définition de la méthode getSystemClipboard()
est donnée ci-dessous.
public abstract Clipboard getSystemClipboard()
throws HeadlessException
La méthode lève une exception nommée HeadlessException
qui représente le drapeau sans tête dans l’application.
Une fois que vous obtenez l’instance du presse-papiers, vous êtes prêt à copier le texte dans le presse-papiers.
Copier la chaîne dans le presse-papiers à l’aide de la classe StringSelection
en Java
Après avoir obtenu l’instance du presse-papiers, la tâche suivante consiste à préparer la chaîne à être copiée dans le presse-papiers. Vous pouvez le faire en utilisant la classe StringSelection
.
La classe StringSelection
implémente la fonctionnalité de transfert d’une chaîne au format texte simple. Cette classe est une sous-classe de la classe java.awt.datatransfer
.
Pour créer une instance de la classe StringSelection
, vous devez passer la chaîne à copier au constructeur de la classe.
Enfin, lorsque l’instance est prête, vous pouvez appeler la méthode setContent()
du presse-papiers qui copie votre chaîne dans le presse-papiers du système. La méthode setContent()
accepte deux arguments.
- Le premier argument est une instance transférable qui, dans notre cas, est l’instance de la classe
StringSelection
. - Le deuxième argument désigne le propriétaire du presse-papiers.
Voyons le code.
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
public class CopyToClipBoard {
public static void main(String[] args) {
String str = "To be copied";
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
StringSelection strSel = new StringSelection(str);
cb.setContents(strSel, null);
}
}
Copier du texte dans le presse-papiers dans les applications JavaFX
Les applications JavaFX sont un peu différentes des applications AWT et Swing. Vous pouvez utiliser une fonctionnalité similaire avec quelques modifications pour afficher le contenu HTML tout en travaillant avec des applications JavaFX.
Au lieu de placer le contenu directement dans le presse-papiers, vous pouvez définir le contenu sur l’instance ClipboardContent
. Une fois le contenu envoyé à l’instance, vous pouvez directement ajouter cette instance au presse-papiers.
De même, lors de la lecture du contenu, vous pouvez différencier le texte normal du contenu HTML à l’aide du drapeau DataFormat.HTML
.
Voyons l’exemple dans le code.
public class CopyToClipBoard {
Clipboard cb = Clipboard.getSystemClipboard();
ClipboardContent ct = new ClipboardContent();
ct.putString("Text to be copied");
ct.putHtml("<b>HTML Text</b>");
cb.setContent(ct);
if (cb.hasContent(DataFormat.HTML)) {
System.out.println(cb.getHtml());
}
if (cb.hasString()) {
System.out.println(cb.getString());
}
}
Il s’agit de copier le contenu d’une application Java dans le presse-papiers du système.