模块  java.desktop
软件包  javax.swing

Class JInternalFrame

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessibleRootPaneContainerWindowConstants

    @JavaBean(defaultProperty="JMenuBar",
              description="A frame container which is contained within another window.")
    public class JInternalFrame
    extends JComponent
    implements Accessible, WindowConstants, RootPaneContainer
    一个轻量级对象,提供本机框架的许多功能,包括拖动,关闭,成为图标,调整大小,标题显示以及支持菜单栏。 有关面向任务的文档和使用内部框架的示例,请参阅“Java教程” How to Use Internal Frames部分。

    通常,您将JInternalFrame s添加到JDesktopPane 该UI委托的外观和感觉,具体行动到DesktopManager由维护对象JDesktopPane

    您可以在JInternalFrame内容窗格中添加子组件。 作为一种方便, addremovesetLayout这一类的方法将被覆盖,所以他们委托给相应方法的调用ContentPane 例如,您可以将子组件添加到内部框架,如下所示:

      internalFrame.add(child); 
    并且孩子将被添加到contentPane。 内容窗格实际上由JRootPane的实例管理,该实例还管理内部框架的布局窗格,玻璃窗格和可选菜单栏。 有关这些组件的完整说明,请参阅JRootPane文档。 有关添加,删除和设置LayoutManagerLayoutManager的详细信息,请参阅JInternalFrame

    警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    InternalFrameEventJDesktopPaneDesktopManagerJInternalFrame.JDesktopIconJRootPaneRootPaneContainerSerialized Form
    • 字段详细信息

      • rootPane

        protected JRootPane rootPane
        JRootPane实例,用于管理此内部框架的内容窗格和可选菜单栏,以及玻璃窗格。
        另请参见:
        JRootPaneRootPaneContainer
      • closable

        protected boolean closable
        框架可以关闭。
      • isClosed

        protected boolean isClosed
        框架已关闭。
      • maximizable

        protected boolean maximizable
        框架可以扩展到桌面窗格的大小。
      • isMaximum

        protected boolean isMaximum
        框架已扩展到最大尺寸。
        另请参见:
        maximizable
      • isIcon

        protected boolean isIcon
        框架已图标化。
        另请参见:
        isIcon()
      • resizable

        protected boolean resizable
        框架的大小可以更改。
      • isSelected

        protected boolean isSelected
        框架当前已被选中。
      • frameIcon

        protected Icon frameIcon
        此内部框架左上角显示的图标。
      • title

        protected String title
        标题栏显示在此内部框架的标题栏中。
      • CONTENT_PANE_PROPERTY

        public static final String CONTENT_PANE_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • MENU_BAR_PROPERTY

        public static final String MENU_BAR_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • TITLE_PROPERTY

        public static final String TITLE_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • LAYERED_PANE_PROPERTY

        public static final String LAYERED_PANE_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • ROOT_PANE_PROPERTY

        public static final String ROOT_PANE_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • GLASS_PANE_PROPERTY

        public static final String GLASS_PANE_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • FRAME_ICON_PROPERTY

        public static final String FRAME_ICON_PROPERTY
        绑定属性名称。
        另请参见:
        常数字段值
      • IS_SELECTED_PROPERTY

        public static final String IS_SELECTED_PROPERTY
        约束属性名称表示此框架已选择状态。
        另请参见:
        常数字段值
      • IS_CLOSED_PROPERTY

        public static final String IS_CLOSED_PROPERTY
        约束属性名称,表示内部框架已关闭。
        另请参见:
        常数字段值
      • IS_MAXIMUM_PROPERTY

        public static final String IS_MAXIMUM_PROPERTY
        约束属性名称,指示内部框架已最大化。
        另请参见:
        常数字段值
      • IS_ICON_PROPERTY

        public static final String IS_ICON_PROPERTY
        约束属性名称,指示内部框架已图标化。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • JInternalFrame

        public JInternalFrame()
        创建一个不可调整大小,不可关闭,不可最大化,不可图标化的 JInternalFrame ,没有标题。
      • JInternalFrame

        public JInternalFrame​(String title)
        创建具有指定标题的不可调整大小,不可关闭,不可最大化,不可图标化的JInternalFrame 请注意,传入null title导致未指定的行为,并可能导致异常。
        参数
        title - 要在标题栏中显示的非 null String
      • JInternalFrame

        public JInternalFrame​(String title,
                              boolean resizable)
        使用指定的标题和可调整性创建不可关闭,不可最大化,不可图标化的 JInternalFrame
        参数
        title - 要在标题栏中显示的 String
        resizable - 如果是 true ,则可以调整内部框架的大小
      • JInternalFrame

        public JInternalFrame​(String title,
                              boolean resizable,
                              boolean closable)
        使用指定的标题,可重新定义和可关闭性创建不可最大化,不可图标 JInternalFrame的JInternalFrame。
        参数
        title - 要在标题栏中显示的 String
        resizable - 如果是 true ,则可以调整内部框架的大小
        closable - 如果是 true ,则可以关闭内部框架
      • JInternalFrame

        public JInternalFrame​(String title,
                              boolean resizable,
                              boolean closable,
                              boolean maximizable)
        使用指定的标题,可调整性,可关闭性和最大化创建不可图标化的 JInternalFrame
        参数
        title - 要在标题栏中显示的 String
        resizable - 如果是 true ,则可以调整内部框架的大小
        closable - 如果是 true ,则可以关闭内部框架
        maximizable - 如果是 true ,则可以最大化内部框架
      • JInternalFrame

        public JInternalFrame​(String title,
                              boolean resizable,
                              boolean closable,
                              boolean maximizable,
                              boolean iconifiable)
        创建JInternalFrame具有指定标题,可调整,可关闭,可最大化和图标化。 所有JInternalFrame构造函数都使用此构造函数。
        参数
        title - 要在标题栏中显示的 String
        resizable - 如果是 true ,则可以调整内部框架的大小
        closable - 如果是 true ,则可以关闭内部框架
        maximizable - 如果是 true ,则可以最大化内部框架
        iconifiable - 如果是 true ,则可以图标化内部框架
    • 方法详细信息

      • createRootPane

        protected JRootPane createRootPane()
        由构造函数调用以设置 JRootPane
        结果
        一个新的 JRootPane
        另请参见:
        JRootPane
      • getUI

        public InternalFrameUI getUI()
        返回呈现此组件的外观对象。
        重写:
        getUIJComponent
        结果
        呈现此组件的 InternalFrameUI对象
      • updateUI

        public void updateUI()
        来自UIManager通知表明外观已经改变。 使用UIManager的最新版本替换当前UI对象。
        重写:
        updateUI课程 JComponent
        另请参见:
        JComponent.updateUI()
      • getMenuBar

        @Deprecated
        public JMenuBar getMenuBar()
        Deprecated.
        As of Swing version 1.0.3, replaced by getJMenuBar().
        如果没有设置菜单栏,则返回此 JInternalFrame的当前 JMenuBarnull
        结果
        当前菜单栏,如果没有设置, null
      • getJMenuBar

        public JMenuBar getJMenuBar()
        返回当前 JMenuBar这个 JInternalFrame ,或 null如果没有菜单栏已设置。
        结果
        此内部框架使用的 JMenuBar
        另请参见:
        setJMenuBar(javax.swing.JMenuBar)
      • setMenuBar

        @Deprecated
        public void setMenuBar​(JMenuBar m)
        Deprecated.
        As of Swing version 1.0.3 replaced by setJMenuBar(JMenuBar m).
        为此 JInternalFrame设置 menuBar属性。
        参数
        m - 在此内部框架中使用的 JMenuBar
        另请参见:
        getJMenuBar()
      • setJMenuBar

        @BeanProperty(preferred=true,
                      description="The menu bar for accessing pulldown menus from this internal frame.")
        public void setJMenuBar​(JMenuBar m)
        设置此 JInternalFramemenuBar属性。
        参数
        m - 在此内部框架中使用的 JMenuBar
        另请参见:
        getJMenuBar()
      • setRootPane

        protected void setRootPane​(JRootPane root)
        设置此JInternalFramerootPane属性。 构造函数调用此方法。
        参数
        root - 新的 JRootPane对象
      • setClosable

        @BeanProperty(preferred=true,
                      description="Indicates whether this internal frame can be closed.")
        public void setClosable​(boolean b)
        设置是否可以通过某些用户操作关闭此 JInternalFrame
        参数
        b - 布尔值,其中 true表示可以关闭此内部框架
      • isClosable

        public boolean isClosable()
        返回是否可以通过某些用户操作关闭此 JInternalFrame
        结果
        true是否可以关闭此内部框架
      • isClosed

        public boolean isClosed()
        返回此 JInternalFrame当前是关闭的。
        结果
        true如果此内部框架已关闭, false
      • setClosed

        @BeanProperty(description="Indicates whether this internal frame has been closed.")
        public void setClosed​(boolean b)
                       throws PropertyVetoException
        如果参数为true则关闭此内部框架。 不要使用false参数调用此方法; 调用setClosed(false)的结果未指定。

        如果内部框架已经关闭,则此方法不执行任何操作并立即返回。 否则,此方法首先触发INTERNAL_FRAME_CLOSING事件。 然后,该方法将closed属性为true ,除非侦听器禁止属性更改。 此方法通过使内部框架不可见和未选中,然后触发INTERNAL_FRAME_CLOSED事件来完成。

        注意:要重用已关闭的内部框架,必须将其添加到容器中(即使您从未将其从以前的容器中删除)。 通常,此容器将是先前包含内部框架的JDesktopPane

        参数
        b - 必须是 true
        异常
        PropertyVetoException - 当设置该属性的尝试被 JInternalFrame否决时
        另请参见:
        isClosed()setDefaultCloseOperation(int)dispose()InternalFrameEvent.INTERNAL_FRAME_CLOSING
      • setResizable

        @BeanProperty(preferred=true,
                      description="Determines whether this internal frame can be resized by the user.")
        public void setResizable​(boolean b)
        设置是否可以通过某些用户操作调整 JInternalFrame大小。
        参数
        b - 布尔值,其中 true表示可以调整此内部框架的大小
      • isResizable

        public boolean isResizable()
        返回是否可以通过某些用户操作调整 JInternalFrame大小。
        结果
        true如果可以调整此内部框架的大小, false
      • setIconifiable

        @BeanProperty(preferred=true,
                      description="Determines whether this internal frame can be iconified.")
        public void setIconifiable​(boolean b)
        设置iconable属性,该属性必须为true ,以便用户能够使JInternalFrame成为图标。 一些外观可能无法实现图标化; 他们会忽略这个属性。
        参数
        b - 布尔值,其中 true表示此内部框架可以图标化
      • isIconifiable

        public boolean isIconifiable()
        获取 iconable属性,默认为 false
        结果
        iconable属性的值。
        另请参见:
        setIconifiable(boolean)
      • isIcon

        public boolean isIcon()
        返回 JInternalFrame当前是否已图标化。
        结果
        true此内部框架是否已图标化
      • setMaximizable

        @BeanProperty(preferred=true,
                      description="Determines whether this internal frame can be maximized.")
        public void setMaximizable​(boolean b)
        设置maximizable属性,该属性确定是否可以通过某些用户操作最大化JInternalFrame 一些外观可能不支持最大化内部框架; 他们会忽略这个属性。
        参数
        b - true指定此内部框架应最大化; false指定它不应该
      • isMaximizable

        public boolean isMaximizable()
        获取 maximizable属性的值。
        结果
        maximizable属性的值
        另请参见:
        setMaximizable(boolean)
      • isMaximum

        public boolean isMaximum()
        返回 JInternalFrame当前是否已最大化。
        结果
        true如果此内部框架最大化, false
      • setMaximum

        @BeanProperty(description="Indicates whether this internal frame is maximized.")
        public void setMaximum​(boolean b)
                        throws PropertyVetoException
        最大化并恢复此内部框架。 甲最大化帧被调整大小以完全适应JDesktopPane与相关联的区域JInternalFrame 恢复帧的大小设置为JInternalFrame的实际大小。
        参数
        b - 布尔值,其中 true最大化此内部框架, false恢复它
        异常
        PropertyVetoException - 当设置该属性的尝试被 JInternalFrame否决时
      • setTitle

        @BeanProperty(preferred=true,
                      description="The text displayed in the title bar.")
        public void setTitle​(String title)
        设置JInternalFrame标题。 title可以具有null值。
        参数
        title - 要在标题栏中显示的 String
        另请参见:
        getTitle()
      • setSelected

        @BeanProperty(description="Indicates whether this internal frame is currently the active frame.")
        public void setSelected​(boolean selected)
                         throws PropertyVetoException
        如果显示内部框架,则选择或取消选择内部框架。 如果是选定的帧,则JInternalFrame通常以不同方式绘制其标题栏,这向用户指示该内部帧具有焦点。 当此方法将内部帧的状态从取消选择更改为选定时,它将触发InternalFrameEvent.INTERNAL_FRAME_ACTIVATED事件。 如果更改是从选定状态取消选择,则会触发InternalFrameEvent.INTERNAL_FRAME_DEACTIVATED事件。
        参数
        selected - 布尔值,其中 true表示此内部框架应该被选中(当前处于活动状态), false表示它应该被取消选择
        异常
        PropertyVetoException - 当设置属性的尝试被 JInternalFrame否决时
        另请参见:
        Component.isShowing()InternalFrameEvent.INTERNAL_FRAME_ACTIVATEDInternalFrameEvent.INTERNAL_FRAME_DEACTIVATED
      • isSelected

        public boolean isSelected()
        返回 JInternalFrame是当前“已选择”还是活动帧。
        结果
        true如果当前选择此内部框架(活动)
        另请参见:
        setSelected(boolean)
      • setFrameIcon

        @BeanProperty(description="The icon shown in the top-left corner of this internal frame.")
        public void setFrameIcon​(Icon icon)
        设置要在此内部框架的标题栏中显示的图像(通常位于左上角)。 某些外观可能不支持在标题栏中显示图标。 此图像不是desktopIcon对象,这是图标化此内部框架时JDesktop显示的图像。 null传递给此函数是有效的,但外观可以为该情况选择适当的行为,例如不显示图标或外观的默认图标。
        参数
        icon - 要在标题栏中显示的 Icon
        另请参见:
        getFrameIcon()
      • getFrameIcon

        public Icon getFrameIcon()
        返回此内部框架标题栏中显示的图像(通常位于左上角)。
        结果
        Icon显示在标题栏中
        另请参见:
        setFrameIcon(javax.swing.Icon)
      • moveToFront

        public void moveToFront()
        如果父组件为 JLayeredPane ,则将此组件移动到位置0的便捷方法。
      • moveToBack

        public void moveToBack()
        如果父组件为 JLayeredPane ,则将此组件移动到位置-1的便捷方法。
      • getLastCursor

        @BeanProperty(bound=false)
        public Cursor getLastCursor()
        返回由 setCursor方法设置的最后一个 Cursor ,该方法不是可调整大小的 Cursor
        结果
        最后一个不可调整大小的 Cursor
        从以下版本开始:
        1.6
      • setLayer

        @BeanProperty(bound=false,
                      expert=true,
                      description="Specifies what desktop layer is used.")
        public void setLayer​(int layer)
        设置此组件的图层属性的便捷方法。 方法setLayer(Integer)应该用于JLayeredPane预定义的层值。 使用setLayer(int) ,必须注意不要意外地与这些值发生冲突。
        参数
        layer - 指定此内部框架的桌面图层的整数
        从以下版本开始:
        1.3
        另请参见:
        setLayer(Integer)JLayeredPane
      • getLayer

        public int getLayer()
        获取该组件的图层属性的便捷方法。
        结果
        一个 Integer对象,指定此框架的桌面图层
        另请参见:
        JLayeredPane
      • getDesktopPane

        @BeanProperty(bound=false)
        public JDesktopPane getDesktopPane()
        在祖先层次结构中搜索JDesktop实例的便捷方法。 如果JInternalFrame找不到,则搜索desktopIcon树。
        结果
        所述 JDesktopPane此内部帧属于,或 null如果没有找到
      • getNormalBounds

        public Rectangle getNormalBounds()
        如果JInternalFrame未处于最大化状态,则返回getBounds() ; 否则,返回JInternalFrame将恢复到的边界。
        结果
        a Rectangle包含处于正常状态时此帧的边界
        从以下版本开始:
        1.3
      • setNormalBounds

        public void setNormalBounds​(Rectangle r)
        设置此内部框架的正常边界,此内部框架将从其最大化状态恢复到的边界。 此方法仅供桌面管理员使用。
        参数
        r - 应恢复此内部框架的边界
        从以下版本开始:
        1.3
      • getFocusOwner

        public Component getFocusOwner()
        如果此JInternalFrame处于活动状态,则返回具有焦点的子项。 否则,返回null
        结果
        有焦点的组件,如果没有孩子有焦点, null
        从以下版本开始:
        1.3
      • getMostRecentFocusOwner

        @BeanProperty(bound=false)
        public Component getMostRecentFocusOwner()
        返回此JInternalFrame的子组件,该组件将在选择此JInternalFrame时获得焦点。 如果当前选择此JInternalFrame ,则此方法返回与getFocusOwner方法相同的组件。 如果未选择此JInternalFrame ,则将返回最近请求焦点的子组件。 如果没有子组件曾请求焦点,则返回此JInternalFrame的初始可聚焦组件。 如果不存在此类子JInternalFrame ,则返回此JInternalFrame要关注的默认组件。
        结果
        选择此 JInternalFrame时将获得焦点的子组件
        从以下版本开始:
        1.4
        另请参见:
        getFocusOwner()isSelected
      • restoreSubcomponentFocus

        public void restoreSubcomponentFocus()
        请求内部框架将焦点恢复到具有焦点的最后一个子组件。 当用户选择此内部框架时,UI会使用此选项 - 例如,通过单击标题栏。
        从以下版本开始:
        1.3
      • reshape

        public void reshape​(int x,
                            int y,
                            int width,
                            int height)
        移动并调整此组件的大小。 与其他组件不同,此实现还强制重新布局,以便始终重新显示标题栏等框架装饰。
        重写:
        reshape ,类 JComponent
        参数
        x - 一个整数,给出组件的新水平位置,以容器左侧的像素为单位
        y - 一个整数,给出组件的新垂直位置,以容器底部的像素为单位
        width - 一个整数,给出组件的新宽度(以像素为单位)
        height - 一个整数,给出组件的新高度(以像素为单位)
        另请参见:
        Component.setBounds(int, int, int, int)
      • addInternalFrameListener

        public void addInternalFrameListener​(InternalFrameListener l)
        添加指定的侦听器以从此内部帧接收内部帧事件。
        参数
        l - 内部框架侦听器
      • removeInternalFrameListener

        public void removeInternalFrameListener​(InternalFrameListener l)
        删除指定的内部框架侦听器,以便它不再从此内部框架接收内部框架事件。
        参数
        l - 内部框架侦听器
      • fireInternalFrameEvent

        protected void fireInternalFrameEvent​(int id)
        触发内部帧事件。
        参数
        id - 被触发事件的类型; 以下之一:
        • InternalFrameEvent.INTERNAL_FRAME_OPENED
        • InternalFrameEvent.INTERNAL_FRAME_CLOSING
        • InternalFrameEvent.INTERNAL_FRAME_CLOSED
        • InternalFrameEvent.INTERNAL_FRAME_ICONIFIED
        • InternalFrameEvent.INTERNAL_FRAME_DEICONIFIED
        • InternalFrameEvent.INTERNAL_FRAME_ACTIVATED
        • InternalFrameEvent.INTERNAL_FRAME_DEACTIVATED
        如果事件类型不是上述事件之一,则不会发生任何事情。
      • doDefaultCloseAction

        public void doDefaultCloseAction()
        触发INTERNAL_FRAME_CLOSING事件,然后执行内部框架的默认关闭操作指定的操作。 此方法通常由内部框架的关闭按钮的外观实现动作处理程序调用。
        从以下版本开始:
        1.3
        另请参见:
        setDefaultCloseOperation(int)InternalFrameEvent.INTERNAL_FRAME_CLOSING
      • setDefaultCloseOperation

        public void setDefaultCloseOperation​(int operation)
        设置当用户在此内部框架上启动“关闭”时默认发生的操作。 可能的选择是:

        DO_NOTHING_ON_CLOSE
        没做什么。 这要求程序处理已注册的InternalFrameListener对象的internalFrameClosing方法中的操作。
        HIDE_ON_CLOSE
        自动使内部框架不可见。
        DISPOSE_ON_CLOSE
        自动处理内部框架。

        默认值为DISPOSE_ON_CLOSE 在执行指定的关闭操作之前,内部框架将触发INTERNAL_FRAME_CLOSING事件。

        参数
        operation -一个中所定义的以下常量 javax.swing.WindowConstants (由实现的接口 JInternalFrame ): DO_NOTHING_ON_CLOSEHIDE_ON_CLOSE ,或 DISPOSE_ON_CLOSE
        另请参见:
        addInternalFrameListener(javax.swing.event.InternalFrameListener)getDefaultCloseOperation()JComponent.setVisible(boolean)dispose()InternalFrameEvent.INTERNAL_FRAME_CLOSING
      • getDefaultCloseOperation

        public int getDefaultCloseOperation()
        返回用户在此内部框架上启动“关闭”时发生的默认操作。
        结果
        用户关闭内部框架时将发生的操作
        另请参见:
        setDefaultCloseOperation(int)
      • pack

        public void pack()
        导致此JInternalFrame子组件以其首选大小布局。 首先恢复然后打包图标化或最大化的内部框架。 如果内部框架无法恢复,则其状态不会更改,也不会被打包。
        另请参见:
        Window.pack()
      • toFront

        public void toFront()
        将这个内部框架带到前面。 将此内部框架放置在堆叠顺序的顶部,并对其他可见的内部框架进行相应的调整。
        另请参见:
        Window.toFront()moveToFront()
      • toBack

        public void toBack()
        将此内部框架发送到背面。 将此内部框架放置在堆叠顺序的底部,并对其他可见的内部框架进行相应的调整。
        另请参见:
        Window.toBack()moveToBack()
      • getWarningString

        @BeanProperty(bound=false)
        public final String getWarningString()
        获取与此内部框架一起显示的警告字符串。 由于内部框架始终是安全的(因为它完全包含在可能需要警告字符串的窗口中),因此此方法始终返回null
        结果
        null
        另请参见:
        Window.getWarningString()
      • paramString

        protected String paramString()
        返回此JInternalFrame的字符串表示JInternalFrame 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramStringJComponent
        结果
        JInternalFrame的字符串表示 JInternalFrame