如何获得 JDesktopPane 内的活动(具有焦点)框架(JInternalFrame)?我的 MDI 记事本需要它(不是任何人都会使用它,只是一个培训项目)。查看 api,我只看到获取所有 JInternalFrames 的函数,而不是活动的。
问问题
8999 次
3 回答
12
使用JDekstopPane.getSelectedFrame() 方法(来自文档:此 JDesktopPane 中当前活动的 JInternalFrame,如果当前没有活动的 JInternalFrame,则为 null。)或 JDesktopPane.getAllFrames()
获取JInternalFrames
当前显示在桌面中的所有列表并检查isSelected()
方法。
于 2011-12-17T04:40:36.350 回答
2
制作一个List<JInternalFrame>
并isSelected()
在迭代时检查它。
附录:另请参阅此示例,该示例用于Action
从菜单中选择内部框架。
于 2011-12-17T04:38:13.783 回答
2
您是否看过名为“如何使用内部框架”的 Java 教程?在您的代码中,您需要一个InternalFrameListener
( API ) ( Tutorial ) 并监听激活/停用事件。激活意味着内部框架被带到顶部;停用意味着它不再位于顶部。由于JDesktopPane
extendsJLayeredPane
您还可以设置添加到其中的组件的 z 顺序。
不要遍历所有窗格 - 使用事件。
如果由于某种原因您更喜欢轮询您的 UI 而不是使用事件驱动的方法,您可以调用getSelectedFrame
它返回活动的JInternalFrame
. 我不确定为什么没有其他人提到它。
于 2011-12-17T04:48:24.067 回答