首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComponentSelector没有按照正确的顺序返回组件

ComponentSelector没有按照正确的顺序返回组件
EN

Stack Overflow用户
提问于 2019-08-31 01:48:41
回答 1查看 23关注 0票数 1

对于我的用例,至关重要的是,ComponentSelector.$("#...", myCnt)以给定容器中显示的相同顺序返回所选组件,假设我使用的是BoxLayout.y(),并且在调用ComponentSelector之前添加和删除组件。

当前,ComponentSelector.$("#...", myCnt)以随机顺序返回组件。

示例:

代码语言:javascript
复制
Form hi = new Form("Hi World", BoxLayout.y());
        Label label1 = new Label("cmp 1");
        label1.setName("toBeSaved");
        Label label2 = new Label("cmp 2");
        label2.setName("toBeSaved");
        Label label3 = new Label("cmp 3");
        label3.setName("toBeSaved");
        Label label4 = new Label("cmp 4");
        label4.setName("toBeSaved");
        Label label5 = new Label("cmp 5");
        label5.setName("toBeSaved");
        Label label6 = new Label("cmp 6");
        label6.setName("toBeSaved");
        Label label7 = new Label("cmp 7");
        label7.setName("toBeSaved");
        Label label8 = new Label("cmp 8");
        label8.setName("toBeSaved");
        Label label9 = new Label("cmp 9");
        label9.setName("toBeSaved");
        Label label10 = new Label("cmp 10");
        label10.setName("toBeSaved");
        hi.addAll(label1, label2, label3, label4, label5, label6, label7, label8, label9, label10);
        hi.show();

        for (Component cmp : ComponentSelector.$("#toBeSaved", hi.getContentPane()).asList()) {
            if (cmp instanceof Label) {
                Log.p(((Label) cmp).getText());
            }
        }

输出:

代码语言:javascript
复制
[EDT] 0:0:0,153 - cmp 2
[EDT] 0:0:0,153 - cmp 7
[EDT] 0:0:0,153 - cmp 8
[EDT] 0:0:0,153 - cmp 1
[EDT] 0:0:0,153 - cmp 6
[EDT] 0:0:0,153 - cmp 4
[EDT] 0:0:0,153 - cmp 3
[EDT] 0:0:0,153 - cmp 9
[EDT] 0:0:0,153 - cmp 10
[EDT] 0:0:0,153 - cmp 5
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-31 05:09:41

这是因为类使用HashSet来防止重复。我用LinkedHashSet代替了它,希望它能解决问题:https://github.com/codenameone/CodenameOne/commit/2ef6a77e4f8ac3475a8c05541b8ac829099ac9a9

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57734646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档