{"id":622,"date":"2025-07-30T23:28:36","date_gmt":"2025-07-30T22:28:36","guid":{"rendered":"https:\/\/www.javaeinfacherkl\u00e4rt.de\/?p=622"},"modified":"2025-08-07T23:31:17","modified_gmt":"2025-08-07T22:31:17","slug":"nicht-textuelle-daten-in-der-zwischenablage-mit-java-bilder-dateien-co","status":"publish","type":"post","link":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/?p=622","title":{"rendered":"Nicht-textuelle Daten in der Zwischenablage mit Java \u2013 Bilder, Dateien &amp; Co."},"content":{"rendered":"\n<p>Die Zwischenablage (\u201eClipboard\u201c) ist eine zentrale Funktion moderner Betriebssysteme. Sie erm\u00f6glicht es, Daten tempor\u00e4r zwischen verschiedenen Anwendungen zu \u00fcbertragen. In Java ist der Umgang mit der Zwischenablage f\u00fcr Text relativ einfach. Doch was, wenn es nicht um Text, sondern um Bilder, Dateien oder bin\u00e4re Daten geht?<\/p>\n\n\n\n<p>In diesem Artikel zeigen wir, wie man in einer Java-Anwendung <strong>nicht-textuelle Daten<\/strong> in die Zwischenablage kopieren und von dort wieder auslesen kann. Wir betrachten unter anderem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Grundlagen der <code>java.awt.datatransfer<\/code>-API<\/li>\n\n\n\n<li>Bilder in die Zwischenablage schreiben und lesen<\/li>\n\n\n\n<li>Dateien (z.\u202fB. Dokumente) in die Zwischenablage einf\u00fcgen und abrufen<\/li>\n\n\n\n<li>Benutzerdefinierte oder bin\u00e4re Formate verarbeiten<\/li>\n\n\n\n<li>Tipps, Fallstricke und Plattformunterschiede<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Grundlagen: Die Clipboard-API in Java<\/h2>\n\n\n\n<p>Java bietet mit dem Paket <code>java.awt.datatransfer<\/code> eine API f\u00fcr den Zugriff auf die systemweite Zwischenablage.<\/p>\n\n\n\n<p>Zentrale Klassen sind:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>Clipboard<\/code><\/strong> \u2013 Repr\u00e4sentiert die Zwischenablage (z.\u202fB. \u00fcber <code>Toolkit.getDefaultToolkit().getSystemClipboard()<\/code>).<\/li>\n\n\n\n<li><strong><code>Transferable<\/code><\/strong> \u2013 Ein Objekt, das Daten in einem oder mehreren Formaten (\u201eDataFlavors\u201c) bereitstellt.<\/li>\n\n\n\n<li><strong><code>DataFlavor<\/code><\/strong> \u2013 Beschreibt den Typ der \u00fcbertragenen Daten (z.\u202fB. <code>DataFlavor.stringFlavor<\/code>, <code>DataFlavor.imageFlavor<\/code>, <code>DataFlavor.javaFileListFlavor<\/code>).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Bilder in die Zwischenablage kopieren und lesen<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Ein Bild in die Zwischenablage kopieren<\/h3>\n\n\n\n<p>Java unterst\u00fctzt standardm\u00e4\u00dfig das Einf\u00fcgen von <code>java.awt.Image<\/code>-Objekten in die Zwischenablage.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">import java.awt.*;\nimport java.awt.datatransfer.*;\nimport java.awt.image.BufferedImage;\n\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">ImageClipboardWriter<\/span> <\/span>{\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> void copyImageToClipboard(BufferedImage image) {\n        TransferableImage trans = <span class=\"hljs-keyword\">new<\/span> TransferableImage(image);\n        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();\n        clipboard.setContents(trans, <span class=\"hljs-keyword\">null<\/span>);\n    }\n\n    <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">TransferableImage<\/span> <span class=\"hljs-keyword\">implements<\/span> <span class=\"hljs-title\">Transferable<\/span> <\/span>{\n        <span class=\"hljs-keyword\">private<\/span> <span class=\"hljs-keyword\">final<\/span> Image image;\n\n        <span class=\"hljs-keyword\">public<\/span> TransferableImage(Image image) {\n            this.image = image;\n        }\n\n        @Override\n        <span class=\"hljs-keyword\">public<\/span> DataFlavor&#91;] getTransferDataFlavors() {\n            <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> DataFlavor&#91;]{DataFlavor.imageFlavor};\n        }\n\n        @Override\n        <span class=\"hljs-keyword\">public<\/span> boolean isDataFlavorSupported(DataFlavor flavor) {\n            <span class=\"hljs-keyword\">return<\/span> DataFlavor.imageFlavor.equals(flavor);\n        }\n\n        @Override\n        <span class=\"hljs-keyword\">public<\/span> Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {\n            <span class=\"hljs-keyword\">if<\/span> (!DataFlavor.imageFlavor.equals(flavor)) {\n                <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> UnsupportedFlavorException(flavor);\n            }\n            <span class=\"hljs-keyword\">return<\/span> image;\n        }\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">2.2 Ein Bild aus der Zwischenablage lesen<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.awt.*;\n<span class=\"hljs-keyword\">import<\/span> java.awt.datatransfer.*;\n<span class=\"hljs-keyword\">import<\/span> java.awt.image.BufferedImage;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">ImageClipboardReader<\/span> <\/span>{\n\n    public <span class=\"hljs-keyword\">static<\/span> BufferedImage readImageFromClipboard() {\n        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();\n        <span class=\"hljs-keyword\">if<\/span> (clipboard.isDataFlavorAvailable(DataFlavor.imageFlavor)) {\n            <span class=\"hljs-keyword\">try<\/span> {\n                <span class=\"hljs-keyword\">return<\/span> (BufferedImage) clipboard.getData(DataFlavor.imageFlavor);\n            } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n                e.printStackTrace();\n            }\n        }\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Dateien in die Zwischenablage kopieren und lesen<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Dateien in die Zwischenablage kopieren<\/h3>\n\n\n\n<p>Der Standard-Flavor f\u00fcr Dateien ist <code>DataFlavor.javaFileListFlavor<\/code>. Er erlaubt das \u00dcbertragen einer <code>List&lt;File&gt;<\/code>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.awt.*;\n<span class=\"hljs-keyword\">import<\/span> java.awt.datatransfer.*;\n<span class=\"hljs-keyword\">import<\/span> java.io.File;\n<span class=\"hljs-keyword\">import<\/span> java.util.Arrays;\n<span class=\"hljs-keyword\">import<\/span> java.util.List;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">FileClipboardWriter<\/span> <\/span>{\n\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> copyFilesToClipboard(List&lt;File&gt; files) {\n        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();\n        Transferable fileTransferable = <span class=\"hljs-keyword\">new<\/span> Transferable() {\n            @Override\n            public DataFlavor&#91;] getTransferDataFlavors() {\n                <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> DataFlavor&#91;]{DataFlavor.javaFileListFlavor};\n            }\n\n            @Override\n            public boolean isDataFlavorSupported(DataFlavor flavor) {\n                <span class=\"hljs-keyword\">return<\/span> DataFlavor.javaFileListFlavor.equals(flavor);\n            }\n\n            @Override\n            public <span class=\"hljs-built_in\">Object<\/span> getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {\n                <span class=\"hljs-keyword\">if<\/span> (!isDataFlavorSupported(flavor)) {\n                    <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> UnsupportedFlavorException(flavor);\n                }\n                <span class=\"hljs-keyword\">return<\/span> files;\n            }\n        };\n        clipboard.setContents(fileTransferable, <span class=\"hljs-literal\">null<\/span>);\n    }\n\n    <span class=\"hljs-comment\">\/\/ Beispielaufruf<\/span>\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) {\n        File file = <span class=\"hljs-keyword\">new<\/span> File(<span class=\"hljs-string\">\"C:\\\\Users\\\\User\\\\Documents\\\\Beispiel.pdf\"<\/span>);\n        copyFilesToClipboard(Arrays.asList(file));\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">3.2 Dateien aus der Zwischenablage lesen<\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">import java.awt.*;\nimport java.awt.datatransfer.*;\nimport java.io.File;\nimport java.util.<span class=\"hljs-keyword\">List<\/span>;\n\n<span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">FileClipboardReader<\/span> <\/span>{\n\n    <span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">List<\/span>&lt;File&gt; readFilesFromClipboard() {\n        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();\n        <span class=\"hljs-keyword\">if<\/span> (clipboard.isDataFlavorAvailable(DataFlavor.javaFileListFlavor)) {\n            <span class=\"hljs-keyword\">try<\/span> {\n                <span class=\"hljs-keyword\">return<\/span> (<span class=\"hljs-keyword\">List<\/span>&lt;File&gt;) clipboard.getData(DataFlavor.javaFileListFlavor);\n            } <span class=\"hljs-keyword\">catch<\/span> (<span class=\"hljs-keyword\">Exception<\/span> e) {\n                e.printStackTrace();\n            }\n        }\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">null<\/span>;\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Bin\u00e4re Daten oder benutzerdefinierte Formate<\/h2>\n\n\n\n<p>Standardm\u00e4\u00dfig erlaubt Java keine direkte \u00dcbertragung roher Bin\u00e4rdaten (z.\u202fB. PDF-Dateien oder Streams) \u00fcber die Zwischenablage. Doch es gibt Workarounds:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Byte-Array als Base64-Text<\/h3>\n\n\n\n<p>Wenn man z.\u202fB. eine Datei oder ein Bild als <code>byte[]<\/code> hat, kann man es Base64-kodiert als Text einf\u00fcgen.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.util.Base64;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">BinaryDataClipboard<\/span> <\/span>{\n\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> copyBytesAsText(byte&#91;] data) {\n        <span class=\"hljs-built_in\">String<\/span> base64 = Base64.getEncoder().encodeToString(data);\n        StringSelection selection = <span class=\"hljs-keyword\">new<\/span> StringSelection(base64);\n        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(selection, <span class=\"hljs-literal\">null<\/span>);\n    }\n\n    public <span class=\"hljs-keyword\">static<\/span> byte&#91;] readBytesFromText() {\n        <span class=\"hljs-keyword\">try<\/span> {\n            <span class=\"hljs-built_in\">String<\/span> base64 = (<span class=\"hljs-built_in\">String<\/span>) Toolkit.getDefaultToolkit()\n                .getSystemClipboard()\n                .getData(DataFlavor.stringFlavor);\n            <span class=\"hljs-keyword\">return<\/span> Base64.getDecoder().decode(base64);\n        } <span class=\"hljs-keyword\">catch<\/span> (Exception e) {\n            <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">null<\/span>;\n        }\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">4.2 Eigene DataFlavor-Objekte<\/h3>\n\n\n\n<p>Java erlaubt auch eigene <code>DataFlavor<\/code>-Typen. Damit lassen sich spezialisierte Formate (z.\u202fB. serialisierte Objekte) definieren. Diese funktionieren aber <strong>nur innerhalb der gleichen Java-Anwendung<\/strong>.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">import<\/span> java.awt.datatransfer.*;\n<span class=\"hljs-keyword\">import<\/span> java.io.Serializable;\n\npublic <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">CustomFlavorExample<\/span> <\/span>{\n\n    <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-class\"><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title\">MyData<\/span> <span class=\"hljs-title\">implements<\/span> <span class=\"hljs-title\">Serializable<\/span> <\/span>{\n        <span class=\"hljs-built_in\">String<\/span> content;\n        public MyData(<span class=\"hljs-built_in\">String<\/span> content) { <span class=\"hljs-keyword\">this<\/span>.content = content; }\n    }\n\n    public <span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">void<\/span> main(<span class=\"hljs-built_in\">String<\/span>&#91;] args) throws Exception {\n        DataFlavor myFlavor = <span class=\"hljs-keyword\">new<\/span> DataFlavor(MyData.class, <span class=\"hljs-string\">\"MyData\"<\/span>);\n\n        MyData data = <span class=\"hljs-keyword\">new<\/span> MyData(<span class=\"hljs-string\">\"Hallo Welt\"<\/span>);\n\n        Transferable transferable = <span class=\"hljs-keyword\">new<\/span> Transferable() {\n            @Override\n            public DataFlavor&#91;] getTransferDataFlavors() {\n                <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">new<\/span> DataFlavor&#91;]{myFlavor};\n            }\n\n            @Override\n            public boolean isDataFlavorSupported(DataFlavor flavor) {\n                <span class=\"hljs-keyword\">return<\/span> myFlavor.equals(flavor);\n            }\n\n            @Override\n            public <span class=\"hljs-built_in\">Object<\/span> getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {\n                <span class=\"hljs-keyword\">if<\/span> (!myFlavor.equals(flavor)) <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> UnsupportedFlavorException(flavor);\n                <span class=\"hljs-keyword\">return<\/span> data;\n            }\n        };\n\n        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(transferable, <span class=\"hljs-literal\">null<\/span>);\n    }\n}\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>\u26a0\ufe0f <strong>Achtung:<\/strong> Solche benutzerdefinierten Flavors sind nicht zwischen verschiedenen Anwendungen oder Sprachen (wie Excel, Word etc.) nutzbar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Plattformunterschiede und Einschr\u00e4nkungen<\/h2>\n\n\n\n<p>Einige Besonderheiten beim Clipboard-Zugriff in Java:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Plattformunterschiede<\/strong>: Nicht jeder <code>DataFlavor<\/code> funktioniert auf allen Systemen gleich. Insbesondere <code>DataFlavor.imageFlavor<\/code> kann auf Linux eingeschr\u00e4nkt sein.<\/li>\n\n\n\n<li><strong>Threading<\/strong>: Clipboard-Zugriffe sollten nicht im Event Dispatch Thread (EDT) blockierend durchgef\u00fchrt werden.<\/li>\n\n\n\n<li><strong>ClipboardOwnership<\/strong>: Java bietet \u00fcber <code>ClipboardOwner<\/code> die M\u00f6glichkeit, informiert zu werden, wenn Inhalte ersetzt werden \u2013 oft aber nicht n\u00f6tig.<\/li>\n\n\n\n<li><strong>Sicherheit<\/strong>: Einige Java-Umgebungen (z.\u202fB. Applets oder restriktive Sandboxen) verbieten Clipboard-Zugriffe.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Fazit<\/h2>\n\n\n\n<p>Die Zwischenablage kann mehr als nur Text \u2013 mit Java lassen sich auch Bilder, Dateien und sogar eigene Datenstrukturen \u00fcbertragen. Besonders praktisch ist dies f\u00fcr Tools, die Inhalte zwischen Anwendungen austauschen oder Benutzern das einfache Kopieren\/Einf\u00fcgen erm\u00f6glichen wollen.<\/p>\n\n\n\n<p>Hier die wichtigsten Punkte zusammengefasst:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Datentyp<\/th><th>Flavor<\/th><th>Unterst\u00fctzt?<\/th><\/tr><\/thead><tbody><tr><td>Text<\/td><td><code>DataFlavor.stringFlavor<\/code><\/td><td>\u2705 Ja<\/td><\/tr><tr><td>Bild<\/td><td><code>DataFlavor.imageFlavor<\/code><\/td><td>\u2705 Meistens (Win\/Mac)<\/td><\/tr><tr><td>Datei<\/td><td><code>DataFlavor.javaFileListFlavor<\/code><\/td><td>\u2705 Ja<\/td><\/tr><tr><td>Bin\u00e4rdaten<\/td><td>Eigener Flavor oder Base64<\/td><td>\ud83d\udd04 Eingeschr\u00e4nkt<\/td><\/tr><tr><td>Custom Types<\/td><td>Benutzerdefinierte <code>DataFlavor<\/code><\/td><td>\ud83d\udd04 Nur intern<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Mit den gezeigten Techniken kannst du deine Java-Anwendung um leistungsf\u00e4hige Zwischenablage-Funktionen erweitern \u2013 auch \u00fcber reinen Text hinaus.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Zwischenablage (\u201eClipboard\u201c) ist eine zentrale Funktion moderner Betriebssysteme. Sie erm\u00f6glicht es, Daten tempor\u00e4r zwischen verschiedenen Anwendungen zu \u00fcbertragen. In Java ist der Umgang mit der Zwischenablage f\u00fcr Text relativ einfach. Doch was, wenn es nicht um Text, sondern um Bilder, Dateien oder bin\u00e4re Daten geht? In diesem Artikel zeigen wir, wie man in einer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-622","post","type-post","status-publish","format-standard","hentry","category-plain_java"],"_links":{"self":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=622"}],"version-history":[{"count":1,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/622\/revisions"}],"predecessor-version":[{"id":623,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=\/wp\/v2\/posts\/622\/revisions\/623"}],"wp:attachment":[{"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xn--javaeinfacherklrt-4qb.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}