我使用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()
。
这可能吗?如果是,怎么样?
答案 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构建器仍然处于测试前阶段,尽管我们非常致力于它及其架构。