我是Codename One的新手,并且通过观看各种教程等方式进行了研究。但是有一个我似乎无法理解的基本概念。
当我在GUIBuilder中设计表单时,如何从代码中引用表单?
即。我在UI Builder中设计了我的表单。现在在我的主要源代码中,我想在表单中添加一个工具栏。在GUIBuilder中,表单称为“Main”,但Main.show()
,Main.hide()
等语句不起作用。
我设法通过使用
获取“导入”表单,因为缺少更好的单词private Form home;
...
...
home=Display.getInstance().getCurrent();
...
home.getToolbar().addCommandToOverflowMenu(edit);
哪个有效,但肯定有一种方法可以直接访问表单而无需获取当前活动的实例?也就是说
Main.getToolbar().addCommandToOverflowMenu(edit);
答案 0 :(得分:1)
您可以覆盖表单的beforeShow()
和postShow()
,只需引用代表表单的参数即可。
要添加命令,建议您在beforeShow()
方法中执行此操作,并且应在postShow()
中完成远程数据提取等长时间过程。
例如,假设您的表单名称为Main
,并且是在GUI Builder中创建的,您可以执行以下操作:
@Override
protected void beforeMain(final Form f) {
f.removeAllCommands();
Toolbar toolbar = new Toolbar();
f.setToolbar(toolbar);
toolbar.setTitleComponent(new Label("My Form Name", "Title"));
toolbar.addCommandToOverflowMenu(edit);
toolbar.addCommandToRightBar(backCommand);
f.setBackCommand(backCommand);
...
}
@Override
protected void postMain(final Form f) {
//fetch remote data here
...
}