【发布时间】:2012-12-07 08:15:42
【问题描述】:
假设我有JPanel 和JLabel,我需要检查JLabel 是否与特定的JPanel 有子父关系。但是,JLabel 可能不是直子,而是孙子等等。
是否有简单的函数 API 可以检查我遗漏的内容?
当然,我可以递归调用Container.getComponents() 或Component.getParent() 并检查。有简单的解决办法吗?
【问题讨论】:
-
您可以简单地从标签父级向上遍历组件层次结构,直到到达 null 或找到组件。您正在寻找的方法是 getParent
-
是的,我知道
getParent()。所以这将是最简单的解决方案,对吧? -
对组件、父级或祖先使用 SwingUtilities 窗口???,快点懒惰地检查 API :-)
-
@mKorbel,@MadProgrammer,我已经尝试过 SwingUtilities 中的
isDescendingFrom。我想知道如果有JScrollPane在路上会发生什么,因为添加的组件已添加到JViewPort。它应该工作吗?
标签: java swing parent-child jcomponent