Form底部的MenuBar对象如何工作?

时间:2017-03-11 23:30:45

标签: codenameone

我正在努力使用表格底部的MenuBar - 这是由代号Javadocs指出的那个:

enter image description here

我似乎无法找到一个例子,但据我所知,以下内容应该有效:

    public void start() {
        if(current != null){
            current.show();
            return;
        }

        Form hi = new Form("Welcome");
        MenuBar menubar = hi.getMenuBar();
        Command test = Command.create("TEST",null,(e)->{
            Log.p("test clicked");
        });
        menubar.addCommand(test);

        hi.show();
    }

但是,我没有得到一个MenuBar。

显然我在这里缺少一些基本的东西 - 谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:2)

菜单栏逻辑有点旧,您不需要定义或使用它。 Modern Codename One应用程序使用Toolbar放置元素,通常将其内容添加到Form的顶部。我将更新JavaDoc以反映这一点。

如果您对表单底部的菜单感兴趣,请执行以下操作:

Form myForm = new Form("With Menu at Bottom", new BorderLayout());
Container content = new Container(...);
myForm.add(BorderLayout.CENTER, content);
myForm.add(BorderLayout.SOUTH, 
    GridLayout.encloseIn(4, menuButton1, menuButton2, menuButton3, menuButton4);

只需将您的真实内容添加到content,然后按照您喜欢的方式创建按钮。

答案 1 :(得分:0)

您还没有为表单分配MenuBar。首先,您必须创建一个,然后使用函数

进行分配
setMenuBar(MenuBar menubar)