通过代码从 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

    ...
}