JDesktopPane - 如何获得活动框架

时间:2011-12-17 04:33:40

标签: java swing mdi jinternalframe jdesktoppane

如何在JDesktopPane中激活(拥有焦点)框架(JInternalFrame)?我需要它用于我的MDI记事本(不是任何人都会使用它,只是一个培训项目)。看看api,我只看到函数来获取所有JInternalFrame,而不是活动的。

3 个答案:

答案 0 :(得分:11)

使用JDekstopPane.getSelectedFrame()方法(来自doc:此JDesktopPane中当前有效的JInternalFrame,如果没有JInternalFrame当前处于活动状态,则为null。)或JDesktopPane.getAllFrames()获取所有{的列表{1}}当前显示在桌面上并检查JInternalFrames方法。

答案 1 :(得分:2)

制作List<JInternalFrame>并在迭代时检查isSelected()

附录:另请参阅使用Action从菜单中选择内部框架的example

答案 2 :(得分:2)

你看过标题为How to Use Internal Frames的Java教程吗?在您的代码中,您需要InternalFrameListenerAPI)(Tutorial)并收听激活/停用事件。激活意味着内部框架被带到顶部;停用意味着它不再是最重要的。由于JDesktopPane扩展JLayeredPane,您还可以设置添加到其中的组件的z顺序。

不要遍历所有窗格 - 使用事件。

如果出于某种原因,您希望轮询用户界面而不是使用事件驱动方法,则可以调用getSelectedFrame来返回有效JInternalFrame。我不确定为什么没有人提到它。