Код: Выделить всё
public class TestFx extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) {
Circle circle = createCircle("#ff0000", "#aa0000",100);
circle.setOnDragDetected((MouseEvent event) -> {
System.out.println("Circle 1 drag detected");
Dragboard db = circle.startDragAndDrop(TransferMode.ANY);
ClipboardContent content = new ClipboardContent();
content.putString("Circle source text");
db.setContent(content);
db.setDragView(null);
});
circle.setOnMouseDragged((MouseEvent event) -> {
event.setDragDetect(true);
});
Circle circle2 = createCircle("#00ff00", "#00aa00",250);
circle2.setOnDragOver(new EventHandler() {
public void handle(DragEvent event) {
if (event.getGestureSource() != circle2 && event.getDragboard().hasString()) {
event.acceptTransferModes(TransferMode.COPY_OR_MOVE);
}
event.consume();
}
});
circle2.setOnDragDropped((DragEvent event) -> {
Dragboard db = event.getDragboard();
if (db.hasString()) {
System.out.println("Dropped: " + db.getString());
event.setDropCompleted(true);
} else {
event.setDropCompleted(false);
}
event.consume();
});
Pane pane = new Pane();
pane.getChildren().add(circle);
pane.getChildren().add(circle2);
Scene scene = new Scene(pane, 400, 200, true);
primaryStage.setScene(scene);
primaryStage.setTitle("DragAndDrop");
primaryStage.show();
}
private Circle createCircle(String strokeColor, String fillColor, double x) {
Circle circle = new Circle();
circle.setCenterX(x);
circle.setCenterY(100);
circle.setRadius(50);
circle.setStroke(Color.valueOf(strokeColor));
circle.setStrokeWidth(5);
circle.setFill(Color.valueOf(fillColor));
return circle;
}
}
Как вы видите при выполнении перетаскивания и падения, изображение файла появляется вблизи козового. Как я понимаю, это изображение от Dragboard#Dragview. Кто -нибудь может сказать, как удалить это изображение?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -dragboard