【问题标题】:JAVAFX Tree view with different context menu具有不同上下文菜单的 JAVAFX 树视图
【发布时间】:2014-08-19 15:19:59
【问题描述】:

我想在树视图中为树项创建上下文菜单。问题是我想为每个 treeItem 显示不同的上下文菜单。如何实施?

我想为 Acc Dept 创建“添加员工”并为 IT 支持创建“添加支持者”。

根据树项的名称,需要显示上下文菜单。

【问题讨论】:

  • 使用自定义树形单元格并在单元格上设置上下文菜单。我有一个 blog post 正在为 TableView 做类似的事情:看看是否有帮助。
  • @James_D 很酷的想法,尤其是 menuItems 的合并 :-) 没想到将 menuItem 添加到多个菜单会起作用。重新养育似乎是在展示时发生的,而不是在添加时发生的?
  • MenuItems 不是Nodes,因此您不会将相同的Node 添加到场景图中的多个位置。它们的行为有点像 ListViewTableView 中的项目(除了没有菜单单元 API),您可以轻松地将同一个项目添加到多个 ListViews。
  • @James_D 哎呀......假设(几乎)一切都是节点......感谢您的信息,这是我今天的学习项目:-)
  • @James_D hmm ...那么如果在 MenuItem 上设置了图形属性,我们会不会遇到麻烦?

标签: javafx javafx-8


【解决方案1】:
 public TreeModel() {
        MenuItem addMenuItem = new MenuItem("Create Tab");
        addMenu.getItems().add(addMenuItem);

        addMenuItem.setOnAction(new EventHandler() {
            @Override
            public void handle(Event t) {
                TreeItem newEmployee = 
                    new TreeItem<>("New Tab");
                        getTreeItem().getChildren().add(newEmployee);
            }
        });

        contextMenuProperty().bind(
  Bindings.when(Bindings.equal(itemProperty(),"TABS"))
  .then(addMenu)
  .otherwise((ContextMenu)null));



    }

这行得通。 @James 非常感谢您的精彩文章 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2016-11-18
    • 1970-01-01
    相关资源
    最近更新 更多