gpt4 book ai didi

java - 在 Java Swing 中循环遍历容器内的嵌套容器

转载 作者:行者123 更新时间:2023-12-02 04:44:30 25 4
gpt4 key购买 nike

所以,我正在开发这个应用程序,其中我有 JPanel 对象填充外部面板。我想循环遍历外部面板内部的面板(因为它们是动态插入的,我不知道会有多少个)并访问它们的组件。但是,似乎只为面板定义了 .getComponentCount()getComponent() ,它不允许我查找它的嵌套组件。

for(int i = 0; i < pl.playlistDisplay.getComponentCount(); i++)
{
// for(int j = 0; j < pl.playlistDisplay.getComponent(i).getComponentCount()) //line with the problem
pl.playlistDisplay.getComponent(i).setForeground(baseColor);
}

我可以使用类似 .getContainerCount() 的东西吗?或者任何其他方式能够访问嵌套容器的组件?

最佳答案

是的,Container 类有一个 getComponentCount() 方法,您可以调用 instanceof 来查看您的 Component 是否是 Container,将其转换为 Container,调用此方法,然后以这种方式递归地遍历容器/组件树,直到找到感兴趣的 JPanel –但是,既然有更好的解决方案,为什么还要让自己承受风险和麻烦呢?

只需保留感兴趣的组件的引用并以这种方式访问​​它们即可。即使在运行时添加组件,也没有理由不能够将代码设置为在需要时轻松安全地存储对其的引用。这将是一个比您正在做的尝试遍历组件树更强大的解决方案。

关于java - 在 Java Swing 中循环遍历容器内的嵌套容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29783167/

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