通过代码从GUIbuilder访问静态表单

时间:2017-02-27 07:54:29

标签: java forms codenameone

我是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);

1 个答案:

答案 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

    ...
}