[英]JavaFx 8 TreeCell Drag and Drop
目的是在treeView上使用拖放來移動節點。
我已經看到了幾個在重新定義的TreeCell中處理事件的示例,但是僅觸發檢測到的事件。
這是我的代碼:
public class TreeCellImpl extends TreeCell<TreeItemContent> {
public TreeCellImpl() {
setOnDragEntered(e -> {
System.out.println(" Entered ");
e.consume();
});
setOnDragDetected(e -> {
System.out.println(" Detected ");
startDragAndDrop(TransferMode.MOVE);
e.consume();
});
setOnDragDone(e -> {
System.out.println(" Done ");
e.consume();
});
setOnDragDropped(e -> {
System.out.println(" Dropped ");
e.setDropCompleted(true);
e.consume();
});
setOnDragExited(e -> {
System.out.println(" Exited ");
e.consume();
});
setOnDragOver(e -> {
System.out.println(" Over ");
e.consume();
});
}
}
我哪里錯了?
在將一些內容添加到Dragboard
之前,似乎不會觸發事件處理程序:
setOnDragDetected(e -> {
System.out.println(" Detected ");
Dragboard db = startDragAndDrop(TransferMode.MOVE);
ClipboardContent content = new ClipboardContent();
content.putString( "Hello!" );
db.setContent(content);
e.consume();
});
您還可以選擇使用MouseEvent中描述的其他類型的拖放機制。 即MouseDragEvent 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.