Изменить dragView во время перетаскивания с помощью JavaFX - PullRequest
0 голосов
/ 19 ноября 2018

- РЕДАКТИРОВАТЬ

Я только что узнал, что это невозможно, но есть ли что-то еще, что я могу сделать, чтобы генерировать визуалы, как я хочу?

Я использую 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...