gpt4 book ai didi

java - 代号 以编程方式打开一个侧边菜单

转载 作者:行者123 更新时间:2023-12-01 18:07:02 28 4
gpt4 key购买 nike

我正在尝试通过代码在我的应用程序上打开侧面菜单。
我的表单使用工具栏用更复杂的组件填充侧面菜单。
我用它来关闭菜单:

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)

最佳答案

SideMenuBar 有非静态方法 openMenu(String direction) 。要打开普通的 SideMenuBar,您可以像这样继续操作:

SideMenuBar smb = (SideMenuBar) Display.getInstance().getCurrent().getMenuBar();
smb.openMenu(null);

我想在您的情况下, f 是 Form,并且由于您使用的是 ToolBar,因此您必须在 getToolbar() 上调用 getMenuBar() ,然后将其转换为 SideMenuBar,如下所示:

((SideMenuBar)f.getToolbar().getMenuBar()).openMenu(null);

请注意,openMenu() 方法有一个方向参数,我不完全确定它的作用。对我来说它适用于 null。我认为如果您没有左侧菜单,则需要它,为此 this link可能有帮助。

关于java - 代号 以编程方式打开一个侧边菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35615916/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com