【发布时间】:2017-02-17 02:01:40
【问题描述】:
编辑答案和更新代码:
我有一个 javafx 应用程序,我想将图像从一个图像视图拖到同一窗口中的另一个。但我想不出办法让第二个图像视图接受并显示图像。
Image image = new Image("file:src/drag_and_drop_6/Notes.png");
ImageView iv = new ImageView();
iv.setImage(image);
Image image2 = new Image("file:src/drag_and_drop_6/orca.png");
ImageView iv2 = new ImageView();
iv2.setImage(image2);
iv.setOnDragDetected((MouseEvent event) -> {
Dragboard db = iv.startDragAndDrop(TransferMode.ANY);
ClipboardContent content = new ClipboardContent();
content.putImage(iv.getImage());
db.setContent(content);
event.consume();
});
iv.setOnDragOver(new EventHandler<DragEvent>() {
public void handle(DragEvent event) {
if (event.getGestureSource() != iv &&
event.getDragboard().hasImage()) {
event.acceptTransferModes(TransferMode.COPY_OR_MOVE);
}
event.consume();
}
});
iv.setOnDragDone(new EventHandler<DragEvent>() {
public void handle(DragEvent event) {
Dragboard db = event.getDragboard();
if (db.hasImage()) {
iv2.setImage(db.getImage());
}
event.consume();
}
});
【问题讨论】:
-
您实际上是在哪里尝试更改第二个图像视图中显示的图像?您可以包含该代码吗?
-
@James_D,我正在开发一个应用程序,用户可以在其中根据重要性随意重新排列流窗格中的节点。我正在第一次体验拖放,并试图弄清楚事情是如何运作的。
-
我实际上希望能够使用它们的 ID 移动节点...
标签: javafx drag-and-drop imageview