java - 从 JavaFX 应用程序复制图像并使用 Windows 粘贴

标签 java javafx javafx-2 fxml javafx-8

我正在开发 JavaFX 应用程序。我想使用上下文菜单从应用程序复制图像,并使用 Windows 的粘贴功能粘贴它。

 File file = new File("C:\\Users\\Admin\\Desktop\\my\\mysql.gif");
    Image image = new Image(file.toURI().toString());
    ImageView ive =new ImageView(image);
    cm = new ContextMenu();
 MenuItem copy = new MenuItem("Copy");
 cm.getItems().add(copy);
 copy.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent t) {
            //Paste Image at location
            Clipboard clipboard = Clipboard.getSystemClipboard();
            ClipboardContent content = new ClipboardContent();
            content.putImage(image); // the image you want, as javafx.scene.image.Image
            clipboard.setContent(content);
        }
    });

例如,如下图所示。

Copy Image From aaplication

并且想要通过使用 Windows 功能菜单粘贴到某个位置。

Paste Image at spectific location

最佳答案

使用ClipboardClipboardContent ,例如如:

Clipboard clipboard = Clipboard.getSystemClipboard();
ClipboardContent content = new ClipboardContent();
// for paste as image, e.g. in GIMP
content.putImage(image); // the image you want, as javafx.scene.image.Image
// for paste as file, e.g. in Windows Explorer
content.putFiles(java.util.Collections.singletonList(new File("C:\\Users\\Admin\\Desktop\\my\\mysql.gif")));
clipboard.setContent(content);

要使 Windows 上下文菜单的“粘贴”操作生效,剪贴板内容必须是文件。在上面演示的情况下,这很容易,否则应该创建一个临时文件。

关于java - 从 JavaFX 应用程序复制图像并使用 Windows 粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20491715/

相关文章:

java - 星号-Java AGI。 DefaultAgiServer 在启动方法运行时卡住

java - getResource() 方法在加载字体文件时返回 null,但为什么呢?

java - javafx 中每个 .css 文件和行的 "Unknown property"警告

java - 获取 JavaFX 中节点的真实位置

Java - GMail API - 授权码

java - h :inputText - jsf does not render the placeholder

java - 缺少 JavaFX 应用程序类

javafx - JavaFX 1.3 知识如何转移到 JavaFX 2.0?

java - @Embedded List 对象 Hibernate

JavaFX:如何检测屏幕上任何位置的鼠标/键事件?