【发布时间】:2016-02-25 00:22:05
【问题描述】:
我正在尝试通过代码在我的应用上打开侧边菜单。
我的表单使用工具栏来填充带有更复杂组件的侧边菜单。
我用它来关闭菜单:
SideMenuBar.closeCurrentMenu();
但我找不到等效的打开函数。
我试过这个:
if(f.getToolbar() !=null){
MenuBar mb = f.getToolbar().getMenuBar();
if(mb!=null){
mb.showMenu();
}
}
但它抛出一个空指针,因为它找不到任何命令(Toolbar.java 第 490 行)
堆栈跟踪:
java.lang.NullPointerException
at java.util.ArrayList.<init>(ArrayList.java:177)
at com.codename1.ui.list.DefaultListModel.<init>(DefaultListModel.java:65)
at com.codename1.ui.List.<init>(List.java:275)
at com.codename1.ui.Toolbar.createOverflowCommandList(Toolbar.java:490)
at com.codename1.ui.Toolbar$ToolbarSideMenu.createCommandComponent(Toolbar.java:799)
at com.codename1.ui.MenuBar.showMenu(MenuBar.java:692)
at com.startex.coffee.managers.forms.MyCardsController.lambda$setupButtonActions$5(MyCardsController.java:217)
at com.codename1.ui.util.EventDispatcher.fireActionSync(EventDispatcher.java:455)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:358)
at com.codename1.ui.Button.fireActionEvent(Button.java:411)
at com.codename1.ui.Button.released(Button.java:442)
at com.codename1.ui.Button.pointerReleased(Button.java:530)
at com.codename1.ui.Form.pointerReleased(Form.java:2578)
at com.codename1.ui.Form.pointerReleased(Form.java:2514)
at com.codename1.ui.Component.pointerReleased(Component.java:3119)
at com.codename1.ui.Display.handleEvent(Display.java:2017)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1065)
at com.codename1.ui.Display.mainEDTLoop(Display.java:994)
at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
【问题讨论】:
-
你能发布
NullPointerException的堆栈吗?行号不再与当前中继保持同步,因此我不知道发生了什么失败,尽管不需要向溢出菜单添加任何内容... -
下面接受的答案对我有用,但我已经添加了堆栈跟踪,以防它可以帮助你
标签: java codenameone