【发布时间】:2016-04-11 02:27:58
【问题描述】:
此程序应将剪贴板中的图像粘贴到 ImageView(在 Windows 10 上)。不幸的是,图像没有正确显示。
public class PasteImageFromClipboard extends Application {
ImageView imageView = new ImageView();
Button bnPaste = new Button("Paste");
public static void main(String[] args) {
Application.launch(args);
}
@Override
public void start(Stage stage) throws Exception {
bnPaste.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
Clipboard cb = Clipboard.getSystemClipboard();
if (cb.hasImage()) {
Image image = cb.getImage();
imageView.setImage(image);
}
}
});
VBox vbox = new VBox();
vbox.getChildren().addAll(bnPaste, imageView);
Scene scene = new Scene(vbox);
stage.setScene(scene);
stage.setWidth(400);
stage.setHeight(400);
stage.show();
}
}
重现步骤:
- 启动 cmd.exe
- 按 ALT-Print 将 cmd 窗口复制到剪贴板
- 启动程序 PasteImageFromClipboard
- 在 PasteImageFromClipboard 中按“粘贴”按钮
这个结果显示在我的电脑上:
应该是这样的:
是否需要更多代码才能正确绘制图像?
【问题讨论】:
-
您能否验证剪贴板中的图像是否“正确”(比如将其粘贴到另一个应用程序中)?看起来黑色窗口背景显示为透明。
-
Windows Paint 和 MS Word 正确显示粘贴的图像。该示例在其他装有 Windows 7 Java8u65 和 2012 Java 8u66 的计算机上正常工作。
-
有什么更新吗? Win 10 上的 java 8u101 并且此问题仍然存在
-
我怀疑这个错误修复可能已经解决了这个问题:bugs.java.com/view_bug.do?bug_id=8187928 我会再次尝试使用 Java 1.8.0_172,当该版本可供一般下载时。我认为该修复程序也将在 Java 9 的下一个版本中发布,尽管错误页面目前没有提及它。
-
我也遇到了同样的问题,图片全被洗掉了。我正在使用 Java 1.8.0_202
标签: javafx-8