- РЕДАКТИРОВАТЬ
Я только что узнал, что это невозможно, но есть ли что-то еще, что я могу сделать, чтобы генерировать визуалы, как я хочу?
Я использую JavaFX для установки dragView на DragBoard, но я не могу найти способ изменить это изображение во время операции перетаскивания.
Я пытался использовать setDragView(MyImage)
, когда произошло событие перетаскивания, но это не сработало.
Это вообще возможно, или я должен найти другой путь?
Код ниже:
// Called when drag starts
public void handleBlockDragDetected(PuzzleBlockView puzzleBlockView, PuzzleBlock puzzleBlock, GridPane blockPane)
{
ClipboardContent clipboardContent = new ClipboardContent();
clipboardContent.put(GameController.BLOCK_FORMAT, puzzleBlock);
Dragboard dragboard = blockPane.startDragAndDrop(TransferMode.MOVE);
dragboard.setDragViewOffsetX(20);
dragboard.setDragViewOffsetY(20);
dragboard.setDragView(puzzleBlockView.getSnapshot());
dragboard.setContent(clipboardContent);
blockPane.setVisible(false);
draggingBlock = puzzleBlockView;
}
// Called on dragOver detected
public void handleBlockDragOver(DragEvent event)
{
Dragboard dragboard = event.getDragboard();
if (dragboard.hasContent(BLOCK_FORMAT) && draggingBlock != null) {
dragboard.setDragView(new Image(getClass().getResource("/img/flag.png").toString()));
event.acceptTransferModes(TransferMode.MOVE);
}
}