我有一個菜單欄類(MenuBarGUI),我把它放在所有其他類中,我需要知道是否可以通過菜單中的選項關閉當前包含的JFrame。通常我可以調用setVisible(false)然後dispose(),但因爲菜單欄沒有對當前幀的引用,所以我不能這樣做。有沒有辦法做到這一點?有什麼辦法可以獲得對Java中當前框架的引用嗎?
4
A
回答
4
如果您MenuBarGUI類JMenuBar的擴展,你可以使用getTopLevelAncestor方法獲取菜單欄的窗口。
1
getParent()
將獲得父容器。用這種方法,你將不得不做一些鑄造。更理想的選擇是使菜單欄可以採用包含close方法的界面。
下面是一個例子:
JFrame frame = new JFrame();
JMenuBar bar = new JMenuBar();
frame.setJMenuBar(bar);
if(bar.getParent().getParent().getParent() instanceof JFrame){
System.out.println(bar.getParent().getParent().getParent());
}
0
上述方法都不適用於我。
因爲我只需要一個小組的直接母公司,直接訪問他們通過超級呼叫:super.setTitle(「新幀標題」)等
相關問題
- 1. 有沒有什麼辦法可以獲得Google Apps中的Android對話框?
- 2. 有什麼辦法可以獲得c函數的大小嗎?
- 3. 有什麼辦法可以在c#中調用對象的引用嗎?
- 4. 有什麼辦法可以檢測Java中的RTL語言嗎?
- 5. 有什麼辦法可以獲得iPhone應用程序記錄
- 6. 有什麼辦法可以用cURL來獲得這種行爲嗎?
- 7. 有什麼辦法可以獲得tkinter菜單按鈕的信息嗎?
- 8. 有什麼辦法可以獲得項目的依賴關係圖嗎?
- 9. 有什麼辦法可以改變apprequests對話框的高度嗎?
- 10. 有什麼辦法可以在Bigtable/Cassandra DB中使用Symfony PHP框架?
- 11. 有什麼辦法可以將MouseListener添加到Graphic對象嗎?
- 12. 有什麼辦法可以從iPad上獲得網頁錄製聲音嗎?
- 13. 有什麼辦法可以在sql中使用函數嗎?
- 14. 有什麼辦法可以在random.randint中使用raw_input變量嗎?
- 15. 有什麼辦法可以從父類調用子方法嗎?
- 16. 有什麼辦法可以隱藏表格中的列嗎?
- 17. 有什麼辦法可以像Winforms中的Slider.AutoToolTipPlacement這樣做嗎?
- 18. 有什麼辦法可以在java中實現'抽象類方法'嗎?
- 19. 有什麼方法可以獲得一些信息,至少可以捕獲(...)嗎?
- 20. C++ - 有什麼辦法來得到當前執行行
- 21. 有沒有什麼辦法可以檢測IE8當前活動的窗口?
- 22. 有什麼辦法可以在MySQL中得到這個結果順序嗎?
- 23. 有什麼辦法可以獲得asp.net應用程序的默認ResourceProviderFactory?
- 24. 有什麼辦法可以獲得特定國家的FB用戶數量?
- 25. 有什麼辦法可以禁用Touch ID提示(UIAlertview)嗎?
- 26. 有什麼辦法可以使用LINQ進行MDX查詢嗎?
- 27. 有什麼辦法可以使用Selenium開始POST請求嗎?
- 28. 有什麼辦法可以知道調用者類名嗎?
- 29. 有什麼辦法可以用kqueue/kevent模擬epoll_wait嗎?
- 30. 有什麼辦法可以從超類中省略變量嗎?
我究竟怎樣才能實現的getParent()方法?我不確定把一個容器放到一個窗口有多安全(這看起來很不安全)。另外,我怎麼能實現另一種方法? – LOD121 2011-02-01 23:00:32
我增加了一個例子,但是如果你要走這條路線,Gursel建議getTopLevelAncestor會更合適。 – jzd 2011-02-01 23:19:42