通过代码从 GUIbuilder 访问静态表单
Accessing static form from GUIbuilder via code
我是代号一的新手,一直在通过观看各种教程等进行学习。但是有一个基本概念我似乎无法掌握。
当我在 GUIBuilder 中设计表单时,如何从我的代码中引用表单?
即我在 UI Builder 中设计了表单。现在在我的主要源代码中,我想向表单添加一个工具栏。在 GUIBuilder 中,表单称为 "Main",但 Main.show()
、Main.hide()
等语句不起作用。
由于找不到更好的词,我使用
设法得到了 "imported" 的形式
private Form home;
...
...
home=Display.getInstance().getCurrent();
...
home.getToolbar().addCommandToOverflowMenu(edit);
哪个有效,但肯定有一种方法可以直接访问表单而无需获取当前活动的实例吗?即类似的东西
Main.getToolbar().addCommandToOverflowMenu(edit);
您可以覆盖表单的 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
...
}
我是代号一的新手,一直在通过观看各种教程等进行学习。但是有一个基本概念我似乎无法掌握。
当我在 GUIBuilder 中设计表单时,如何从我的代码中引用表单?
即我在 UI Builder 中设计了表单。现在在我的主要源代码中,我想向表单添加一个工具栏。在 GUIBuilder 中,表单称为 "Main",但 Main.show()
、Main.hide()
等语句不起作用。
由于找不到更好的词,我使用
设法得到了 "imported" 的形式private Form home;
...
...
home=Display.getInstance().getCurrent();
...
home.getToolbar().addCommandToOverflowMenu(edit);
哪个有效,但肯定有一种方法可以直接访问表单而无需获取当前活动的实例吗?即类似的东西
Main.getToolbar().addCommandToOverflowMenu(edit);
您可以覆盖表单的 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
...
}