gpt4 book ai didi

java - 是否可以在 ClipboardContent javaFx 上存储节点

转载 作者:行者123 更新时间:2023-12-01 09:57:17 26 4
gpt4 key购买 nike

我实现了将一个组拖放到一个 Pane 中,在剪贴板中放置一个空字符串。 ,这工作得很好,但我需要拖动时我的对象可见。

我在一些示例中看到使用了 DataFormat 并且该对象应该是可序列化的,我不确定它是否适合我的情况。我尝试使用此方法,但出现异常。事实上,JavaFX 不支持使用 Java Serialized 接口(interface)对组件进行序列化。

我正在使用:JavaSE1.7、JavaFX2.2

最佳答案

您可以创建您正在拖动的Node的图像并将其用于dragView:

private EventHandler<? super MouseEvent> onDragDetected() {
return evt -> {
Node node = (Node) evt.getSource();
Dragboard db = node.startDragAndDrop(TransferMode.MOVE);
db.setDragView(createSnapshot(node), evt.getX(), evt.getY());

ClipboardContent content = new ClipboardContent();
content.putString("");
db.setContent(content);

evt.consume();
};
}

private WritableImage createSnapshot(Node node) {
SnapshotParameters snapshotParams = new SnapshotParameters();
WritableImage image = node.snapshot(snapshotParams, null);
return image;
}

关于java - 是否可以在 ClipboardContent javaFx 上存储节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37093884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com