如何使用变量来引用代号为1的组件?

时间:2016-01-28 09:24:46

标签: variables codenameone

我使用UIBuilder创建了一个UI。

我不想总是使用findXXXX (),而是希望在Statemachine中执行类似的操作:

public class Statemachine ... {

private Container c;
private Tabs t;


initVars () {
   initAll();
}

....
private initAll () {
   Container c = findContainer();
   Tabs t = findTabs();
   ...
}

}

并将其用作c.getYYY()

这可能吗?如果是,怎么样?

2 个答案:

答案 0 :(得分:2)

是的,你可以这样做,但不可取。

它的危险在于,如果在不同的表单上有2个具有相同名称的组件,这可能会引用错误的组件,并且可能难以调试。

如果您确定可以处理上述问题,您可以在Statemachine类中声明和启动变量,但在所有方法之外作为私有全局变量。

public class Statemachine ... {

    private Container c = findContainer();
    private Tabs t = findTabs(); 

    initVars () {

    }

    ....
}

答案 1 :(得分:1)

您无法在当前的GUI构建器中执行此操作,因为当前的GUI构建器会动态创建表单并在导航期间将其丢弃。

new GUI builder使用完全不同的架构,并且将完全相同:每个UI表单1个类。因此,每个字段都有变量。

您可以在行动here中看到这一点。

请注意,此时GUI构建器仍然处于测试前阶段,尽管我们非常致力于它及其架构。