我的意思是'鼠标观点'。 Z顺序最高的东西 坚持JPopupMenu,甚至不能成为'亲子'关系的一部分。
感谢。
在测试中,我需要验证屏幕上是否出现了JPopupMenu组件。我没有JPopuMenu的任何特定附加属性来查找该谓词的所有JPopupMenus并检查它们中是否有任何可见。我想获得所有可见的顶级组件,并验证其中一个是JPopupMenu类。
答案 0 :(得分:4)
我也不清楚这个问题,但是如果你想要某个组件的最高父组件,那就有SwingUtilities.getWindowAncestor(Component);
如果您需要所有可见窗口的列表,请参阅早期的Stackoverflow问题,swing get visible frames
编辑添加
然后查看@mKorbel对getComponentZOrder的建议。但JPopupMenus在他们的父母身上可能很奇怪。
重读您的问题,您可能希望获得所有顶级Windows并调用getComponentPopupMenu()来检查匹配项。
或者,如果您有x,y位置,最好的解决方案是调用findComponentAt(x,y)。来自javadocs:
“找到包含指定位置的可见子组件。如果组件中存在重叠,则返回最顶层子组件。如果包含子组件是Container,则此方法将继续搜索最深的嵌套子组件。在搜索过程中忽略不可见的组件。“
答案 1 :(得分:2)
我不清楚你的问题,但我认为getComponentZOrder
会很有用。
答案 2 :(得分:1)
不确定JPopupMenu是否被视为JFrame的子级。
但如果是,那么你应该能够使用Darryl的Swing Utils课来找到它们。