有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我的菜单栏不会显示?

我有一个简单的测试用例,有两个表单和一个侧菜单。当我显示第一个表单时,侧菜单不见了。在我转到向导窗体并返回后,侧菜单将按其应有的方式显示。但我无法在应用程序首次启动时显示侧菜单

我应该注意到,《开发者指南》中没有关于菜单栏组件的任何内容。如果有其他方法可以使用它,MenuBar javadocs应该这么说

import com.codename1.ui.*;
import com.codename1.ui.layouts.BoxLayout;
import com.codename1.ui.plaf.UIManager;

public class Playground {

  private Form current;
  private MainForm mainForm;
  public void init(Object context) {
    UIManager.initFirstTheme("/theme");
    Toolbar.setGlobalToolbar(true); // Didn't help.
    mainForm = new MainForm();
  }

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

    Form hi = mainForm;
    hi.show();
    current = hi;
  }

  public void stop() {
  }

  public void destroy() {
  }

  private class MainForm extends Form {
    MainForm() {
      super("Test of Hamburger Menu");
      setLayout(new BoxLayout(BoxLayout.Y_AXIS));
      Button spacer = new Button("Wizard");
      spacer.addActionListener((evt)-> showWizard());
      add(spacer);
      Label normalLabel = new Label("Normal text");
      add(normalLabel);

      Toolbar toolbar = new Toolbar();
      setToolbar(toolbar); // I apparently need to do this or set GlobalToolbar to true, or the menu icon won't appear at all.
//      MenuBar menubar = toolbar.getMenuBar(); // Didn't help.
      MenuBar menubar = getMenuBar();
      Command dummyOne = new Command("One");
      Command dummyTwo = new Command("Two");
      menubar.addCommand(dummyOne);
      menubar.addCommand(dummyTwo);
    }
  }

  private void showWizard() {
    Form wizardForm = new Form("Wizard");
    wizardForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    Button done = new Button("Done");
    done.addActionListener((evt)-> backToMain());
    wizardForm.add(done);
    wizardForm.show();
  }

  private void backToMain() {
    mainForm.show();
  }

}

共 (1) 个答案

  1. # 1 楼答案

    您应该使用工具栏添加命令

    toolbar.addCommandToSideMenu(dummyOne);