首页 > 解决方案 > JavaFX:检测具有无效目标的 DragEvent

问题描述

我有一个 DragEvent,它可以处理棋盘游戏中的棋子移动。当一个棋子被抓取时,可能的目标位置被标记为绿色(“selectedPiece = position”->“drawBoard()”),一旦放置棋子,这些标记就会消失(“selectedPiece = null”->“drawBoard()” )。但是,如果棋子掉到棋盘外面,标记会留下来。有没有办法检测无效目标的这种下降?

    ImageView getMoveablePiece(Position position)
    {
        ImageView piece = getPiece(pos);
        piece.setOnDragDetected((MouseEvent event) -> {
            Dragboard db = piece.startDragAndDrop(TransferMode.MOVE);
            ClipboardContent content = new ClipboardContent();
            content.putImage(piece.getImage());
            db.setContent(content);
            selectedPiece = position;
            drawBoard();
            event.consume();
        });
        return piece;
    }

标签: javafxdrag-and-drop

解决方案


推荐阅读