gpt4 book ai didi

layout - Vaadin - 迭代布局中的组件

转载 作者:行者123 更新时间:2023-12-04 06:04:37 24 4
gpt4 key购买 nike

我正在 Vaadin 7 中处理一个项目。我需要解析布局中的所有组件并找到我需要的组件。

enter image description here

以上是我的布局的图示。

我在蓝色垂直布局内动态创建绿色垂直布局。因为我是动态创建的,所以我不能为那些动态创建的东西提供任何实例。但是,我有所有组件的唯一 ID。

现在我需要使用 Id 找到一个组合框。我不知道如何从蓝色垂直布局解析到组合框。

我所拥有的只是一个蓝色垂直布局的实例和用于组合框的 Id。
而且,如果需要,我也可以拥有绿色和红色布局的 ID。

我需要这样的东西,但卡住了..

Iterator<Component> iterate = blueMainLayout.iterator();
Combobox cb;
while (iterate.hasNext()) {
Component c = (Component) iterate.next();
cb = (Combobox) blueMainLayout.....;
if (cb.getId().equals(something.getId())) {
// do my job
}
}

最佳答案

您必须递归检查组件。

class FindComponent {
public Component findById(HasComponents root, String id) {
System.out.println("findById called on " + root);

Iterator<Component> iterate = root.iterator();
while (iterate.hasNext()) {
Component c = iterate.next();
if (id.equals(c.getId())) {
return c;
}
if (c instanceof HasComponents) {
Component cc = findById((HasComponents) c, id);
if (cc != null)
return cc;
}
}

return null;
}
}

FindComponent fc = new FindComponent();
Component myComponent = fc.findById(blueMainLayout, "azerty");

希望能帮助到你

关于layout - Vaadin - 迭代布局中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16589223/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com