我的意思是在'鼠標的角度'。 Z值最高的東西。
卡住了JPopupMenu,甚至不能成爲「親子關係」的一部分。java如何獲得頂級組件
謝謝。
在測試中,我需要驗證一個JPopupMenu組件出現在屏幕上。我沒有該JPopuMenu的任何特定附加屬性來查找該謂詞的所有JPopupMenus,並檢查它們中的任何一個是否可見。我想獲得所有可見的頂級組件,並驗證其中一個是JPopupMenu類。
我的意思是在'鼠標的角度'。 Z值最高的東西。
卡住了JPopupMenu,甚至不能成爲「親子關係」的一部分。java如何獲得頂級組件
謝謝。
在測試中,我需要驗證一個JPopupMenu組件出現在屏幕上。我沒有該JPopuMenu的任何特定附加屬性來查找該謂詞的所有JPopupMenus,並檢查它們中的任何一個是否可見。我想獲得所有可見的頂級組件,並驗證其中一個是JPopupMenu類。
我也對這個問題不太清楚,但如果你想要一些組件的最高父,有SwingUtilities.getWindowAncestor(Component);
如果你希望所有可見窗口的列表,請參閱先前的問題#1,swing get visible frames
編輯ADDED
然後看看getComponentZOrder的@mKorbel建議。但是JPopupMenus對他們的親子來說可能很奇怪。
重新讀取您的問題,您可能想要獲取所有頂級Windows並調用getComponentPopupMenu()來檢查匹配項。或者,如果你有一個x,y位置,最好的解決方案是調用findComponentAt(x,y)。從javadocs:
「定位包含指定位置的可見子組件。如果組件中存在重疊,則返回最頂層子組件。如果包含的子組件是Container,則此方法將繼續搜索最深的嵌套子組件,在搜索期間忽略不可見的組件。「
我需要與SwingUtilities.getWindowAncestor(Component)相反;在'知名度的角度'。我需要最高Z級的孩子 –
+1,@Mykhaylo Adamovych再次發佈SSCCEE,因爲所有事情都應該是正確的或正確的方式,爲什麼我們需要問你爲你提供正確的建議...... ... – mKorbel
我不清楚你的問題,但我認爲getComponentZOrder
會很有用。
不確定是否將JPopupMenu視爲JFrame的子項。
但是,如果是這樣,那麼你應該可以使用Darryl的Swing Utils類來找到它們。
請在這裏發佈http://sscce.org/表單中的代碼,說明您的requirent(s) – mKorbel
要注意:JPopupMenus不一定顯示在頂層組件中 - 如果它們是輕量級的,它們會添加到layeredPane所有者的頂級父級rootpane – kleopatra