我实现了将一个组拖放到一个窗格中,在clipBoard中放入一个空字符串。 ,这很有效,但拖动时我需要看到我的物体。
我在一些例子中看到过使用了DataFormat,并且该对象应该是可序列化的,我不确定它是否可以适用于我的情况。 我尝试使用此方法但是我遇到了异常。事实上,JavaFX不支持使用Java Serializable接口对组件进行序列化。
我正在使用:JavaSE1.7,JavaFX2.2
答案 0 :(得分:1)
您可以创建拖动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;
}