我正在Codename one
中构建应用。我试图在代号为一个资源GUI中创建一个Form,并指定它在代码中使用的类型。背景是能够动态指定在表单中使用哪些数据。
这是推荐的,是否有推荐的方法来实现这一目标?
目前我正在深入研究代号代码,看起来一种方法是将定制资源传递给StateMachine/UIBuilder
。 UIBuilder
向资源询问组件类型,并使用它来返回自定义类型,
并使用
UIBuilder.registerCustomComponent("MyForm",com.myapp.MyForm.class);
对此有何建议?
答案 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