当前位置: 首页 > 面试题库 >

如何在JFrame中获取所有元素?

柴晔
2023-03-14
问题内容

我有这段代码来获取我需要的所有元素并进行一些处理。问题是我需要指定每个面板以获取其中的元素。

for (Component c : panCrawling.getComponents()) {
    //processing
}
for (Component c : panFile.getComponents()) {
    //processing
}
for (Component c : panThread.getComponents()) {
    //processing
}
for (Component c : panLog.getComponents()) {
    //processing
}
//continue to all panels

我想做这样的事情,并且不需要指定所有面板名称就可以获取所有元素。我该怎么做。下面的代码无法获取所有元素。

for (Component c : this.getComponents()) {
    //processing
}

问题答案:

您可以编写一个递归方法并在每个容器上递归:

该站点提供了一些示例代码:

public static List<Component> getAllComponents(final Container c) {
    Component[] comps = c.getComponents();
    List<Component> compList = new ArrayList<Component>();
    for (Component comp : comps) {
        compList.add(comp);
        if (comp instanceof Container)
            compList.addAll(getAllComponents((Container) comp));
    }
    return compList;
}

如果只需要直接子组件的组件,则可以将递归深度限制为2。



 类似资料:
  • 问题内容: 我今天一直在测试Javascript CSS函数,并注意到当使用.style.cssText时,它仅提供了我用JS设置的CSS。 相反,我想获取元素的所有CSS,所以我猜我在做错什么,或者可能需要另一个函数,例如getComputedStyle,但要使用整个CSS而不是单个属性值,但是我找不到搜索时需要的东西。 所以我的问题是如何从代码的最后部分获得完整的CSS,例如: 而不是当前输出

  • 问题内容: 在带有Python的Selenium中,是否可以将WebElement的所有子级作为列表获取? 问题答案: 是的,您可以通过或实现。 但是,这听起来并不像查找某个元素的 所有子 元素的有效用例。要获得所有直接/间接孩子都是昂贵的手术。请进一步说明您要做什么。应该有更好的方法。

  • 在Selenium和Python中,是否可以将WebElement的所有子元素作为列表?

  • 问题内容: 在n = 5和k = 3的情况下,以下循环将执行此操作 但是效率不高,我想使用Banker的序列来完成,因此先探索单例,然后研究配对,然后研究三元组再停止。 我没有找到一种方法,但是至少此循环应该更有效: 还有:但是k个嵌入式循环看起来很丑 问题答案: 即使k个嵌入式循环看起来很丑,这也应该是最有效的方法

  • 问题内容: 我需要动态获取 架构中存在 的 所有表的 META信息,元信息如表,实体,列名等。 我遵循了以下教程 https://vladmihalcea.com/how-to-get-the-entity-mapping-to-database-table- binding-metadata-from-hibernate/ 如以上链接中所述,我创建了一个名为MetadataExtractorIn

  • 我有一个html如下所示 如您所见,在父div下有四个子div,它包含类;第三个子div包含一个额外的类。我想在包含类的子项之前选择所有子项。注任何子级都可以包含类,并且在任何情况下,我都希望所有子级位于它之前。 这就是我所做的 但在本例中它也选择最后一个子项。在使用JavaScript选择类之前,我如何确保只有子类? 我在stackoverflow中发现了一个类似的问题:在element wit