У меня есть этот пользовательский код TreeView:Редактировать элемент в JavaFX TreeView
treeView.setCellFactory(new Callback<TreeView<Tree>, TreeCell<Tree>>()
{
@Override
public TreeCell<Tree> call(TreeView<Tree> treeView)
{
final TreeCell<Tree> cell = new TreeCell<Tree>()
{
@Override
protected void updateItem(Tree item, boolean empty)
{
super.updateItem(item, empty);
if (!empty)
{
setText(item != null ? item.toString() : "");
setGraphic(createImageView(item));
setContextMenu(createContextMenuTreeItem(item));
}
else
{
setText(null);
setGraphic(null);
setContextMenu(null);
}
}
};
return cell;
}
});
Я хотел бы, чтобы иметь возможность переименовать узлы дерева с использованием содержимого меню. Можете ли вы помочь мне реализовать это?
Это действительно требует дополнительной информации. Если вы хотите переименовать их в контекстном меню, вы, вероятно, имеете фиксированный набор имен для выбора. Что это за имена? Как реализуется класс 'Tree'? Вероятно, это поможет показать, что вы пробовали, что вы ожидали от этого, и как оно по-другому отличалось от ваших ожиданий. –
Вот пример, который я использую http://stackoverflow.com/questions/22149137/drag-nodes-of-treeview – user1285928
Вам нужно контекстное меню с действием «переименовать», которое позволяет вам переименовать узел? Просто щелкнуть элемент и начать редактирование - это не то, что вы ищете? – janih