作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过代码在我的应用程序上打开侧面菜单。
我的表单使用工具栏用更复杂的组件填充侧面菜单。
我用它来关闭菜单:
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/
我正在创建自己的网站。使用无序列表制作我自己的标题 + 导航栏。 我遇到的问题是标题没有延伸到浏览器的边缘。唯一可行的方法是在 css“header”中使用。 position:absolute; 我
我是一名优秀的程序员,十分优秀!