Java Text in die Zwischenablage kopieren
-
Erstellen Sie eine Instanz der Zwischenablage mit den Klassen
Toolkit
undClipboard
in Java -
String in die Zwischenablage kopieren mit der Klasse
StringSelection
in Java - Kopieren Sie Text in die Zwischenablage in JavaFX-Anwendungen
Dieser Artikel beschreibt das Kopieren des Textes aus einer Java-Anwendung in die Zwischenablage.
Java stellt mehrere Elemente bereit, die den Text in einer Java-Anwendung anzeigen. Der Text muss mehrmals in die Zwischenablage kopiert werden, um ihn in andere Computeranwendungen zu exportieren.
Erstellen Sie eine Instanz der Zwischenablage mit den Klassen Toolkit
und Clipboard
in Java
Java bietet eine Oberklasse namens Toolkit
, die eine Vielzahl von Methoden enthält, um die GUI-basierten Funktionalitäten in Java zu implementieren.
Die Klasse hat eine statische Methode namens getDefaultToolkit()
, die eine Standardinstanz der Klasse Toolkit
zurückgibt. Die Definition der Methode ist unten angegeben.
public static Toolkit getDefaultToolkit()
Sobald Sie die Standardinstanz von Toolkit
erhalten haben, können Sie damit die Methode getSystemClipboard()
weiter aufrufen. Diese abstrakte Methode gibt eine Singleton-Instanz der Systemzwischenablage zurück.
Die Definition der Methode getSystemClipboard()
ist unten angegeben.
public abstract Clipboard getSystemClipboard()
throws HeadlessException
Die Methode löst eine Ausnahme namens HeadlessException
aus, die das Headless-Flag in der Anwendung darstellt.
Sobald Sie die Zwischenablage erhalten haben, können Sie den Text in die Zwischenablage kopieren.
String in die Zwischenablage kopieren mit der Klasse StringSelection
in Java
Nachdem Sie die Instanz der Zwischenablage erhalten haben, besteht die nächste Aufgabe darin, die Zeichenfolge zum Kopieren in die Zwischenablage bereit zu machen. Sie können dies tun, indem Sie die Klasse StringSelection
verwenden.
Die Klasse StringSelection
implementiert die Funktionalität, um einen String im einfachen Textformat zu übertragen. Diese Klasse ist eine Unterklasse der Klasse java.awt.datatransfer
.
Um eine Instanz der Klasse StringSelection
zu erstellen, müssen Sie den zu kopierenden String an den Klassenkonstruktor übergeben.
Wenn die Instanz fertig ist, können Sie schließlich die Methode setContent()
der Zwischenablage aufrufen, die Ihren String in die Zwischenablage des Systems kopiert. Die Methode setContent()
akzeptiert zwei Argumente.
- Das erste Argument ist eine übertragbare Instanz, in unserem Fall die Klasseninstanz
StringSelection
. - Das zweite Argument gibt den Eigentümer der Zwischenablage an.
Lassen Sie uns den Code sehen.
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);
}
}
Kopieren Sie Text in die Zwischenablage in JavaFX-Anwendungen
JavaFX-Anwendungen unterscheiden sich ein wenig von AWT- und Swing-Anwendungen. Sie können eine ähnliche Funktionalität mit einer kleinen Änderung verwenden, um den HTML-Inhalt anzuzeigen, während Sie mit JavaFX-Anwendungen arbeiten.
Anstatt den Inhalt direkt in die Zwischenablage zu legen, können Sie den Inhalt auf die Instanz ClipboardContent
setzen. Sobald der Inhalt in die Instanz gepusht wurde, können Sie diese Instanz direkt zur Zwischenablage hinzufügen.
Ebenso können Sie beim Lesen des Inhalts mit dem Flag DataFormat.HTML
zwischen dem normalen Text und dem HTML-Inhalt unterscheiden.
Sehen wir uns das Beispiel im Code an.
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());
}
}
Dabei geht es darum, den Inhalt einer Java-Anwendung in die Zwischenablage des Systems zu kopieren.