如何獲取JDesktopPane中的活動(具有焦點)框架(JInternalFrame)?我需要它用於我的MDI記事本(不是任何人都會使用它,只是一個培訓項目)。看看api,我看到的只是獲取所有JInternalFrame的函數,而不是活動的。JDesktopPane - 如何獲取活動框架
8
A
回答
10
使用JDekstopPane.getSelectedFrame()方法(從DOC:此JDesktopPane當前活動的JInternalFrame,如果沒有JInternalFrame處於當前活動的空)或JDesktopPane.getAllFrames()
獲取當前顯示在桌面上的所有JInternalFrames
的列表並檢查方法。
2
製作一個List<JInternalFrame>
,並在迭代時檢查isSelected()
。
附錄:另請參閱使用Action
從菜單中選擇內部幀的example。
2
你看過名爲How to Use Internal Frames的Java教程嗎?在您的代碼中,您需要一個InternalFrameListener
(API)(Tutorial)並收聽激活/取消激活事件。激活表示內部框架被帶到頂部;停用意味着它不再處於頂端。由於JDesktopPane
延伸了JLayeredPane
您還可以設置添加到它的組件的z順序。
不要迭代所有窗格 - 使用事件。
如果由於某種原因,您更傾向於輪詢您的用戶界面,而不是使用事件驅動的方法,則可以撥打getSelectedFrame
返回活動的JInternalFrame
。我不確定爲什麼沒有人提到它。
相關問題
- 1. 的JDesktopPane不會隱藏它的框架
- 2. 如何鎖定JDesktopPane內部的金框架
- 3. 實體框架 - 如何獲取列?
- 4. 如何每秒獲取SurfaceView的框架?
- 5. 如何獲取NSStatusItem的框架
- 6. 如何使用JavaScript從框架集框架中獲取元素?
- 7. 動態獲取鍵盤的框架
- 8. 可滾動的JDesktopPane?
- 9. 如何從自定義對話框獲取數據到活動?
- 10. 如何在Tkinter中使用滾動條獲取框架?
- 11. ADO.NET實體框架:如何獲取自動級聯刪除?
- 12. 如何獲取有關活動
- 13. 如何獲取socket.io的活動實例?
- 14. 如何獲取加入活動?
- 15. Android - 如何通過PApplet獲取活動
- 16. 如何獲取AngularStrap活動標籤?
- 17. 如何獲取特定活動的android:label?
- 18. 如何從活動的IShellView獲取IShellFolder?
- 19. 如何動態獲取系統架構?
- 20. 如何在活動中獲取活動視圖?
- 21. 如何在兒童活動中獲取姓名父活動
- 22. 如何從本地活動中的計劃活動獲取OutArgument?
- 23. 如何獲取當前活動的活動?
- 24. 如何設置JDesktopPane大小
- 25. 獲取Angularjs /離子框架
- 26. Zend框架獲取URL
- 27. 獲取忍者框架
- 28. 獲取BASE_URL到symfony3框架
- 29. 在框架中獲取ckeditor
- 30. 獲取框架集名稱
請注意,[JDesktopPane.getAllFrames()](http://docs.oracle.com/javase/7/docs/api/javax/swing/JDesktopPane.html#getAllFrames())會返回一個數組,因此您可能以及迭代數組(而不是使用列表)。 – 2011-12-17 04:42:23
-1重新發明車輪。將使用getSelectedFrame()或getAllFrames()。 – camickr 2011-12-17 05:23:09
這是一個公平的警察。 – trashgod 2011-12-17 05:47:45