1
我对树视图中的下列cellValueFactory添加文本菜单和dragAndDrop功能:仅显示contextMenu当用户右键点击一个项目
treeView.setCellFactory(new Callback<TreeView<String>, TreeCell<String>>() {
@Override
public TreeCell<String> call(TreeView<String> stringTreeView) {
TreeCell<String> treeCell = new TreeCell<String>() {
@Override
protected void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
if (!empty && item != null) {
setText(item);
setGraphic(getTreeItem().getGraphic());
final ContextMenu contextMenu = new ContextMenu();
MenuItem item2 = new MenuItem("Delete");
item2.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent e) {
System.out.println("Here I will add some delete functionality");
}
});
contextMenu.getItems().addAll(item2);
treeView.setContextMenu(contextMenu);
setContextMenu(contextMenu);
} else {
setText(null);
setGraphic(null);
}
}
};
addDragAndDrop(treeCell);
treeView.setEditable(true);
return treeCell;
}
});
拖放的伟大工程和文本菜单显示出来,但它表明在树状视图中右击一切。我怎么才能让它只出现在用户实际上右键单击树形视图中的一个项目时?
将上下文菜单添加到单元格而不是树。 – 2014-10-02 09:35:57
您可以将它作为答案发布,我会接受它。再次感谢@james_D :) – miniHessel 2014-10-02 09:44:11