如何获取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