如何獲取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. 如何獲取NSStatusItem的框架
- 5. 如何每秒獲取SurfaceView的框架?
- 6. 如何從框架中獲取網址?
- 7. 如何使用JavaScript從框架集框架中獲取元素?
- 8. JDesktopPane放置
- 9. 動態獲取鍵盤的框架
- 10. JDesktopPane - 最小化JInternalFrames
- 11. 如何獲取非活動視圖的複選框ID?
- 12. 可滾動的JDesktopPane?
- 13. ADO.NET實體框架:如何獲取自動級聯刪除?
- 14. 如何在Tkinter中使用滾動條獲取框架?
- 15. 如何使用CSS獲取動畫png的框架?
- 16. 如何在框架佈局中啓動活動
- 17. 如何獲取活動連接數?
- 18. 如何從ComponentName獲取活動引用
- 19. 如何從活動的IShellView獲取IShellFolder?
- 20. 如何獲取特定活動的android:label?
- 21. 如何獲取有關活動
- 22. 如何獲取socket.io的活動實例?
- 23. 如何獲取所有的Facebook活動?
- 24. Android - 如何通過PApplet獲取活動
- 25. 如何獲取當前活動的UIEvent?
- 26. 如何獲取AngularStrap活動標籤?
- 27. 如何從活動中獲取視圖?
- 28. 如何獲取活動的更改集?
- 29. 如何獲取加入活動?
- 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