0
我正在尝试实现棋盘游戏Qwirkle,并且我正在制作GUI。我正在使用JavaFX api来执行此操作。这是它看起来像现在:在JavaFX中拖放setOnDragDropped操作问题
Qwirkle GUI
我使用一个边界布局,其中的核心是我的板和左侧,底部和右侧的空间用于按钮和这样的。我通过在左上方生成ImageView节点并将它们转换为正确的位置来绘制板。
我试图实现拖放功能,我拖动底部的瓷砖,并将它们放在板上的某个位置。到目前为止,我已经设法从DragEntered和DragExited获得一个终端响应,但不是DragDropped,我很茫然。这是我的代码为拖动事件:
public Tile() {
currentTile.setOnDragDetected(new EventHandler<MouseEvent>() {
public void handle(MouseEvent event) {
Dragboard db = currentTile.startDragAndDrop(TransferMode.ANY);
ClipboardContent content = new ClipboardContent();
content.putString("THIS HAS BEEN DROPPED");
db.setContent(content);
event.consume();
}
});
}
public BackBoardTile() {
currentTile.setOnDragDropped(new EventHandler<DragEvent>() {
public void handle(DragEvent event) {
Dragboard db = event.getDragboard();
boolean success = false;
if (db.hasString()) {
System.out.println(db.getString());
success = true;
}
event.setDropCompleted(success);
event.consume();
}
});
}
任何帮助将不胜感激!
使用的MacBook Pro与OS X 10.11.2测试
你接受的OnDragOver拖动转移?请参阅完整示例http://stackoverflow.com/a/30457148 –
非常感谢!它现在完美运行! – DavidJNatarajan