TreeCell中的静态contextMenu

时间:2015-06-03 02:03:03

标签: javafx javafx-8

在教程https://docs.oracle.com/javafx/2/ui_controls/tree-view.htm中,将contextMenu添加到TreeCell以允许特定于项目的上下文。

在这种情况下,不是为每个单元创建一个新的ContextMenu(),而是使ContextMenu静态并在静态初始化器中创建项目,例如。

private final class TextFieldTreeCellImpl extends TreeCell<String> {
    private static final ContextMenu addMenu = new ContextMenu();
    static {
        MenuItem addMenuItem = new MenuItem("Add Employee");
        addMenu.getItems().add(addMenuItem);
        addMenuItem.setOnAction(new EventHandler() {
            public void handle(Event t) {
                TreeItem newEmployee = 
                    new TreeItem<String>("New Employee");
                        getTreeItem().getChildren().add(newEmployee);
            }
        });
    }

为每个单元创建一个新的ContextMenu实例有什么好处吗?

0 个答案:

没有答案