Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从codenameone中的组件名称获取组件?_Java_Codenameone - Fatal编程技术网

Java 如何从codenameone中的组件名称获取组件?

Java 如何从codenameone中的组件名称获取组件?,java,codenameone,Java,Codenameone,如果我知道component设置的组件的名称。setName(名称)如何使用该名称获取组件对象。如果您通过designer添加了该组件,则您可以通过 FindHateEverComponentName()(使用下面的文本字段名,您可以通过findMyTf()访问) 但是,如果您已经通过代码添加了组件,那么访问组件的方法之一是通过其父容器as(例如,其TextField then) TextField myTf=(TextField)findParentContainer().getCompone

如果我知道component设置的组件的名称。setName(名称)如何使用该名称获取组件对象。

如果您通过designer添加了该组件,则您可以通过

FindHateEverComponentName()
(使用下面的文本字段名,您可以通过findMyTf()访问)

但是,如果您已经通过代码添加了组件,那么访问组件的方法之一是通过其父容器as(例如,其TextField then)

TextField myTf=(TextField)findParentContainer().getComponentAt(0)

在这里,您必须维护来自该ParentContainer的正确组件索引,而不是0

要比较它的名字,你可以使用
findParentContainer().getComponentAt(0).getName().equalsIgnoreCase(名称)

例如:

私有静态组件findByName(容器根,字符串componentName){
int count=root.getComponentCount();
对于(int-iter=0;iter
添加了一个在手工编码的应用程序中按名称查找的更完整示例。这确实很有帮助
private static Component findByName(Container root, String componentName) {
    int count = root.getComponentCount();
    for(int iter = 0 ; iter < count ; iter++) {
        Component c = root.getComponentAt(iter);
        String n = c.getName();
        if(n != null && n.equals(componentName)) {
            return c;
        }
        if(c instanceof Container) {
            c = findByName((Container)c, componentName);
            if(c != null) {
                return c;
            }
        }
    }
    return null;
}