用代号1表示子类

时间:2015-11-06 09:55:49

标签: codenameone

我正在Codename one中构建应用。我试图在代号为一个资源GUI中创建一个Form,并指定它在代码中使用的类型。背景是能够动态指定在表单中使用哪些数据。

这是推荐的,是否有推荐的方法来实现这一目标?

目前我正在深入研究代号代码,看起来一种方法是将定制资源传递给StateMachine/UIBuilderUIBuilder向资源询问组件类型,并使用它来返回自定义类型, 并使用

等行注册​​自定义表单类型
UIBuilder.registerCustomComponent("MyForm",com.myapp.MyForm.class);

对此有何建议?

1 个答案:

答案 0 :(得分:0)

现在,在旧的GUI构建器中执行此操作的唯一方法是使用新的Form子类替换所有表单,这在许多情况下都可以。例如。在状态机中覆盖它:

protected Component createComponentInstance(String componentType, Class cls) {
    if(cls == From.class) {
        return new MyForm();
    }
    return super.createComponentInstance(componentType, cls);
}

请注意,我们正在迁移到一个新的更传统的GUI构建器,现在它处于技术预览状态(翻译:buggy as hell和许多缺失的功能),但这在未来应该是微不足道的。参见:

https://www.codenameone.com/blog/new-gui-builder.html

https://www.codenameone.com/blog/gui-builder-walkthru.html

https://www.codenameone.com/blog/terse-syntax-migration-wizard-more.html