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