Class JInternalFrame

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JInternalFrame
All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer,WindowConstants

@JavaBean(defaultProperty="JMenuBar",description="A frame container which is contained within another window.")public classJInternalFrameextendsJComponentimplementsAccessible,WindowConstants,RootPaneContainer
A lightweight object that provides many of the features of a native frame, including dragging, closing, becoming an icon, resizing, title display, and support for a menu bar. For task-oriented documentation and examples of using internal frames, seeHow to Use Internal Frames, a section inThe Java Tutorial.

Generally, you addJInternalFrames to aJDesktopPane. The UI delegates the look-and-feel-specific actions to theDesktopManager object maintained by theJDesktopPane.

TheJInternalFrame content pane is where you add child components. As a convenience, theadd,remove, andsetLayout methods of this class are overridden, so that they delegate calls to the corresponding methods of theContentPane. For example, you can add a child component to an internal frame as follows:

       internalFrame.add(child);
And the child will be added to the contentPane. The content pane is actually managed by an instance ofJRootPane, which also manages a layout pane, glass pane, and optional menu bar for the internal frame. Please see theJRootPane documentation for a complete description of these components. Refer toRootPaneContainer for details on adding, removing and setting theLayoutManager of aJInternalFrame.

Warning: Swing is not thread safe. For more information seeSwing's Threading Policy.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to thejava.beans package. Please seeXMLEncoder.

Since:
1.2
See Also:
  • Field Details

    • rootPane

      protected JRootPane rootPane
      TheJRootPane instance that manages the content pane and optional menu bar for this internal frame, as well as the glass pane.
      See Also:
    • rootPaneCheckingEnabled

      protected boolean rootPaneCheckingEnabled
      If true then calls toadd andsetLayout will be forwarded to thecontentPane. This is initially false, but is set to true when theJInternalFrame is constructed.
      See Also:
    • closable

      protected boolean closable
      The frame can be closed.
    • isClosed

      protected boolean isClosed
      The frame has been closed.
    • maximizable

      protected boolean maximizable
      The frame can be expanded to the size of the desktop pane.
    • isMaximum

      protected boolean isMaximum
      The frame has been expanded to its maximum size.
      See Also:
    • iconable

      protected boolean iconable
      The frame can "iconified" (shrunk down and displayed as an icon-image).
      See Also:
    • isIcon

      protected boolean isIcon
      The frame has been iconified.
      See Also:
    • resizable

      protected boolean resizable
      The frame's size can be changed.
    • isSelected

      protected boolean isSelected
      The frame is currently selected.
    • frameIcon

      protected Icon frameIcon
      The icon shown in the top-left corner of this internal frame.
    • title

      protected String title
      The title displayed in this internal frame's title bar.
    • desktopIcon

      protected JInternalFrame.JDesktopIcon desktopIcon
      The icon that is displayed when this internal frame is iconified. Subclassers must ensure this is set to a non-null value during construction and not subsequently set this to null.
      See Also:
    • CONTENT_PANE_PROPERTY

      public static final String CONTENT_PANE_PROPERTY
      Bound property name.
      See Also:
    • MENU_BAR_PROPERTY

      public static final String MENU_BAR_PROPERTY
      Bound property name.
      See Also:
    • TITLE_PROPERTY

      public static final String TITLE_PROPERTY
      Bound property name.
      See Also:
    • LAYERED_PANE_PROPERTY

      public static final String LAYERED_PANE_PROPERTY
      Bound property name.
      See Also:
    • ROOT_PANE_PROPERTY

      public static final String ROOT_PANE_PROPERTY
      Bound property name.
      See Also:
    • GLASS_PANE_PROPERTY

      public static final String GLASS_PANE_PROPERTY
      Bound property name.
      See Also:
    • FRAME_ICON_PROPERTY

      public static final String FRAME_ICON_PROPERTY
      Bound property name.
      See Also:
    • IS_SELECTED_PROPERTY

      public static final String IS_SELECTED_PROPERTY
      Constrained property name indicated that this frame has selected status.
      See Also:
    • IS_CLOSED_PROPERTY

      public static final String IS_CLOSED_PROPERTY
      Constrained property name indicating that the internal frame is closed.
      See Also:
    • IS_MAXIMUM_PROPERTY

      public static final String IS_MAXIMUM_PROPERTY
      Constrained property name indicating that the internal frame is maximized.
      See Also:
    • IS_ICON_PROPERTY

      public static final String IS_ICON_PROPERTY
      Constrained property name indicating that the internal frame is iconified.
      See Also:
  • Constructor Details

    • JInternalFrame

      public JInternalFrame()
      Creates a non-resizable, non-closable, non-maximizable, non-iconifiableJInternalFrame with no title.
    • JInternalFrame

      public JInternalFrame(String title)
      Creates a non-resizable, non-closable, non-maximizable, non-iconifiableJInternalFrame with the specified title. Note that passing in anulltitle results in unspecified behavior and possibly an exception.
      Parameters:
      title - the non-nullString to display in the title bar
    • JInternalFrame

      public JInternalFrame(String title, boolean resizable)
      Creates a non-closable, non-maximizable, non-iconifiableJInternalFrame with the specified title and resizability.
      Parameters:
      title - theString to display in the title bar
      resizable - iftrue, the internal frame can be resized
    • JInternalFrame

      public JInternalFrame(String title, boolean resizable, boolean closable)
      Creates a non-maximizable, non-iconifiableJInternalFrame with the specified title, resizability, and closability.
      Parameters:
      title - theString to display in the title bar
      resizable - iftrue, the internal frame can be resized
      closable - iftrue, the internal frame can be closed
    • JInternalFrame

      public JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable)
      Creates a non-iconifiableJInternalFrame with the specified title, resizability, closability, and maximizability.
      Parameters:
      title - theString to display in the title bar
      resizable - iftrue, the internal frame can be resized
      closable - iftrue, the internal frame can be closed
      maximizable - iftrue, the internal frame can be maximized
    • JInternalFrame

      public JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable, boolean iconifiable)
      Creates aJInternalFrame with the specified title, resizability, closability, maximizability, and iconifiability. AllJInternalFrame constructors use this one.
      Parameters:
      title - theString to display in the title bar
      resizable - iftrue, the internal frame can be resized
      closable - iftrue, the internal frame can be closed
      maximizable - iftrue, the internal frame can be maximized
      iconifiable - iftrue, the internal frame can be iconified
  • Method Details

    • createRootPane

      protected JRootPane createRootPane()
      Called by the constructor to set up theJRootPane.
      Returns:
      a newJRootPane
      See Also:
    • getUI

      public InternalFrameUI getUI()
      Returns the look-and-feel object that renders this component.
      Overrides:
      getUI in class JComponent
      Returns:
      theInternalFrameUI object that renders this component
    • setUI

      @BeanProperty(hidden=true,visualUpdate=true,description="The UI object that implements the Component's LookAndFeel.")public void setUI(InternalFrameUI ui)
      Sets the UI delegate for thisJInternalFrame.
      Parameters:
      ui - the UI delegate
    • updateUI

      public void updateUI()
      Notification from theUIManager that the look and feel has changed. Replaces the current UI object with the latest version from theUIManager.
      Overrides:
      updateUI in class JComponent
      See Also:
    • getUIClassID

      @BeanProperty(bound=false,description="UIClassID")public String getUIClassID()
      Returns the name of the look-and-feel class that renders this component.
      Overrides:
      getUIClassID in class JComponent
      Returns:
      the string "InternalFrameUI"
      See Also:
    • isRootPaneCheckingEnabled

      protected boolean isRootPaneCheckingEnabled()
      Returns whether calls toadd andsetLayout are forwarded to thecontentPane.
      Returns:
      true ifadd andsetLayout are forwarded; false otherwise
      See Also:
    • setRootPaneCheckingEnabled

      @BeanProperty(hidden=true,description="Whether the add and setLayout methods are forwarded")protected void setRootPaneCheckingEnabled(boolean enabled)
      Sets whether calls toadd andsetLayout are forwarded to thecontentPane.
      Parameters:
      enabled - true ifadd andsetLayout are forwarded, false if they should operate directly on theJInternalFrame.
      See Also:
    • addImpl

      protected void addImpl(Component comp,Object constraints, int index)
      Adds the specified childComponent. This method is overridden to conditionally forward calls to thecontentPane. By default, children are added to thecontentPane instead of the frame, refer toRootPaneContainer for details.
      Overrides:
      addImpl in class Container
      Parameters:
      comp - the component to be enhanced
      constraints - the constraints to be respected
      index - the index
      Throws:
      IllegalArgumentException - ifindex is invalid
      IllegalArgumentException - if adding the container's parent to itself
      IllegalArgumentException - if adding a window to a container
      See Also:
    • remove

      public void remove(Component comp)
      Removes the specified component from the container. Ifcomp is not a child of theJInternalFrame this will forward the call to thecontentPane.
      Overrides:
      remove in class Container
      Parameters:
      comp - the component to be removed
      Throws:
      NullPointerException - ifcomp is null
      See Also:
    • setLayout

      public void setLayout(LayoutManager manager)
      Ensures that, by default, the layout of this component cannot be set. Overridden to conditionally forward the call to thecontentPane. Refer toRootPaneContainer for more information.
      Overrides:
      setLayout in class Container
      Parameters:
      manager - theLayoutManager
      See Also:
    • getMenuBar

      @Deprecatedpublic JMenuBar getMenuBar()
      Deprecated.
      As of Swing version 1.0.3, replaced bygetJMenuBar().
      Returns the currentJMenuBar for thisJInternalFrame, ornull if no menu bar has been set.
      Returns:
      the current menu bar, ornull if none has been set
    • getJMenuBar

      public JMenuBar getJMenuBar()
      Returns the currentJMenuBar for thisJInternalFrame, ornull if no menu bar has been set.
      Returns:
      theJMenuBar used by this internal frame
      See Also:
    • setMenuBar

      @Deprecatedpublic void setMenuBar(JMenuBar m)
      Deprecated.
      As of Swing version 1.0.3 replaced bysetJMenuBar(JMenuBar m).
      Sets themenuBar property for thisJInternalFrame.
      Parameters:
      m - theJMenuBar to use in this internal frame
      See Also:
    • setJMenuBar

      @BeanProperty(preferred=true,description="The menu bar for accessing pulldown menus from this internal frame.")public void setJMenuBar(JMenuBar m)
      Sets themenuBar property for thisJInternalFrame.
      Parameters:
      m - theJMenuBar to use in this internal frame
      See Also:
    • getContentPane

      public Container getContentPane()
      Returns the content pane for this internal frame.
      Specified by:
      getContentPane in interface RootPaneContainer
      Returns:
      the content pane
      See Also:
    • setContentPane

      @BeanProperty(hidden=true,description="The client area of the internal frame where child components are normally inserted.")public void setContentPane(Container c)
      Sets thisJInternalFrame'scontentPane property.
      Specified by:
      setContentPane in interface RootPaneContainer
      Parameters:
      c - the content pane for this internal frame
      Throws:
      IllegalComponentStateException - (a runtime exception) if the content pane parameter isnull
      See Also:
    • getLayeredPane

      public JLayeredPane getLayeredPane()
      Returns the layered pane for this internal frame.
      Specified by:
      getLayeredPane in interface RootPaneContainer
      Returns:
      aJLayeredPane object
      See Also:
    • setLayeredPane

      @BeanProperty(hidden=true,description="The pane which holds the various desktop layers.")public void setLayeredPane(JLayeredPane layered)
      Sets thisJInternalFrame'slayeredPane property.
      Specified by:
      setLayeredPane in interface RootPaneContainer
      Parameters:
      layered - theJLayeredPane for this internal frame
      Throws:
      IllegalComponentStateException - (a runtime exception) if the layered pane parameter isnull
      See Also:
    • getGlassPane

      public Component getGlassPane()
      Returns the glass pane for this internal frame.
      Specified by:
      getGlassPane in interface RootPaneContainer
      Returns:
      the glass pane
      See Also:
    • setGlassPane

      @BeanProperty(hidden=true,description="A transparent pane used for menu rendering.")public void setGlassPane(Component glass)
      Sets thisJInternalFrame'sglassPane property.
      Specified by:
      setGlassPane in interface RootPaneContainer
      Parameters:
      glass - the glass pane for this internal frame
      See Also:
    • getRootPane

      @BeanProperty(hidden=true,description="The root pane used by this internal frame.")public JRootPane getRootPane()
      Returns therootPane object for this internal frame.
      Specified by:
      getRootPane in interface RootPaneContainer
      Overrides:
      getRootPane in class JComponent
      Returns:
      therootPane property
      See Also:
    • setRootPane

      protected void setRootPane(JRootPane root)
      Sets therootPane property for thisJInternalFrame. This method is called by the constructor.
      Parameters:
      root - the newJRootPane object
    • setClosable

      @BeanProperty(preferred=true,description="Indicates whether this internal frame can be closed.")public void setClosable(boolean b)
      Sets whether thisJInternalFrame can be closed by some user action.
      Parameters:
      b - a boolean value, wheretrue means this internal frame can be closed
    • isClosable

      public boolean isClosable()
      Returns whether thisJInternalFrame can be closed by some user action.
      Returns:
      true if this internal frame can be closed
    • isClosed

      public boolean isClosed()
      Returns whether thisJInternalFrame is currently closed.
      Returns:
      true if this internal frame is closed,false otherwise
    • setClosed

      @BeanProperty(description="Indicates whether this internal frame has been closed.")public void setClosed(boolean b) throwsPropertyVetoException
      Closes this internal frame if the argument istrue. Do not invoke this method with afalse argument; the result of invokingsetClosed(false) is unspecified.

      If the internal frame is already closed, this method does nothing and returns immediately. Otherwise, this method begins by firing anINTERNAL_FRAME_CLOSING event. Then this method sets theclosed property totrue unless a listener vetoes the property change. This method finishes by making the internal frame invisible and unselected, and then firing anINTERNAL_FRAME_CLOSED event.

      Note: To reuse an internal frame that has been closed, you must add it to a container (even if you never removed it from its previous container). Typically, this container will be theJDesktopPane that previously contained the internal frame.

      Parameters:
      b - must betrue
      Throws:
      PropertyVetoException - when the attempt to set the property is vetoed by theJInternalFrame
      See Also:
    • setResizable

      @BeanProperty(preferred=true,description="Determines whether this internal frame can be resized by the user.")public void setResizable(boolean b)
      Sets whether theJInternalFrame can be resized by some user action.
      Parameters:
      b - a boolean, wheretrue means this internal frame can be resized
    • isResizable

      public boolean isResizable()
      Returns whether theJInternalFrame can be resized by some user action.
      Returns:
      true if this internal frame can be resized,false otherwise
    • setIconifiable

      @BeanProperty(preferred=true,description="Determines whether this internal frame can be iconified.")public void setIconifiable(boolean b)
      Sets theiconable property, which must betrue for the user to be able to make theJInternalFrame an icon. Some look and feels might not implement iconification; they will ignore this property.
      Parameters:
      b - a boolean, wheretrue means this internal frame can be iconified
    • isIconifiable

      public boolean isIconifiable()
      Gets theiconable property, which by default isfalse.
      Returns:
      the value of theiconable property.
      See Also:
    • isIcon

      public boolean isIcon()
      Returns whether theJInternalFrame is currently iconified.
      Returns:
      true if this internal frame is iconified
    • setIcon

      @BeanProperty(description="The image displayed when this internal frame is minimized.")public void setIcon(boolean b) throwsPropertyVetoException
      Iconifies or de-iconifies this internal frame, if the look and feel supports iconification. If the internal frame's state changes to iconified, this method fires anINTERNAL_FRAME_ICONIFIED event. If the state changes to de-iconified, anINTERNAL_FRAME_DEICONIFIED event is fired.
      Parameters:
      b - a boolean, wheretrue means to iconify this internal frame andfalse means to de-iconify it
      Throws:
      PropertyVetoException - when the attempt to set the property is vetoed by theJInternalFrame
      See Also:
    • setMaximizable

      @BeanProperty(preferred=true,description="Determines whether this internal frame can be maximized.")public void setMaximizable(boolean b)
      Sets themaximizable property, which determines whether theJInternalFrame can be maximized by some user action. Some look and feels might not support maximizing internal frames; they will ignore this property.
      Parameters:
      b -true to specify that this internal frame should be maximizable;false to specify that it should not be
    • isMaximizable

      public boolean isMaximizable()
      Gets the value of themaximizable property.
      Returns:
      the value of themaximizable property
      See Also:
    • isMaximum

      public boolean isMaximum()
      Returns whether theJInternalFrame is currently maximized.
      Returns:
      true if this internal frame is maximized,false otherwise
    • setMaximum

      @BeanProperty(description="Indicates whether this internal frame is maximized.")public void setMaximum(boolean b) throwsPropertyVetoException
      Maximizes and restores this internal frame. A maximized frame is resized to fully fit theJDesktopPane area associated with theJInternalFrame. A restored frame's size is set to theJInternalFrame's actual size.
      Parameters:
      b - a boolean, wheretrue maximizes this internal frame andfalse restores it
      Throws:
      PropertyVetoException - when the attempt to set the property is vetoed by theJInternalFrame
    • getTitle

      public String getTitle()
      Returns the title of theJInternalFrame.
      Returns:
      aString containing this internal frame's title
      See Also:
    • setTitle

      @BeanProperty(preferred=true,description="The text displayed in the title bar.")public void setTitle(String title)
      Sets theJInternalFrame title.title may have anull value.
      Parameters:
      title - theString to display in the title bar
      See Also:
    • setSelected

      @BeanProperty(description="Indicates whether this internal frame is currently the active frame.")public void setSelected(boolean selected) throwsPropertyVetoException
      Selects or deselects the internal frame if it's showing. AJInternalFrame normally draws its title bar differently if it is the selected frame, which indicates to the user that this internal frame has the focus. When this method changes the state of the internal frame from deselected to selected, it fires anInternalFrameEvent.INTERNAL_FRAME_ACTIVATED event. If the change is from selected to deselected, anInternalFrameEvent.INTERNAL_FRAME_DEACTIVATED event is fired.
      Parameters:
      selected - a boolean, wheretrue means this internal frame should become selected (currently active) andfalse means it should become deselected
      Throws:
      PropertyVetoException - when the attempt to set the property is vetoed by theJInternalFrame
      See Also:
    • isSelected

      public boolean isSelected()
      Returns whether theJInternalFrame is the currently "selected" or active frame.
      Returns:
      true if this internal frame is currently selected (active)
      See Also:
    • setFrameIcon

      @BeanProperty(description="The icon shown in the top-left corner of this internal frame.")public void setFrameIcon(Icon icon)
      Sets an image to be displayed in the titlebar of this internal frame (usually in the top-left corner). Some look and feels might not support displaying an icon in the titlebar. This image is not thedesktopIcon object, which is the image displayed in theJDesktop when this internal frame is iconified. Passingnull to this function is valid, but the look and feel can choose the appropriate behavior for that situation, such as displaying no icon or a default icon for the look and feel.
      Parameters:
      icon - theIcon to display in the title bar
      See Also:
    • getFrameIcon

      public Icon getFrameIcon()
      Returns the image displayed in the title bar of this internal frame (usually in the top-left corner).
      Returns:
      theIcon displayed in the title bar
      See Also:
    • moveToFront

      public void moveToFront()
      Convenience method that moves this component to position 0 if its parent is aJLayeredPane.
    • moveToBack

      public void moveToBack()
      Convenience method that moves this component to position -1 if its parent is aJLayeredPane.
    • getLastCursor

      @BeanProperty(bound=false)public Cursor getLastCursor()
      Returns the lastCursor that was set by thesetCursor method that is not a resizableCursor.
      Returns:
      the last non-resizableCursor
      Since:
      1.6
    • setCursor

      public void setCursor(Cursor cursor)
      Sets the cursor image to the specified cursor. This cursor image is displayed when thecontains method for this component returns true for the current cursor location, and this Component is visible, displayable, and enabled. Setting the cursor of aContainer causes that cursor to be displayed within all of the container's subcomponents, except for those that have a non-null cursor.

      The method may have no visual effect if the Java platform implementation and/or the native system do not support changing the mouse cursor shape.

      Overrides:
      setCursor in class Component
      Parameters:
      cursor - One of the constants defined by theCursor class; if this parameter isnull then this component will inherit the cursor of its parent
      Since:
      1.6
      See Also:
    • setLayer

      @BeanProperty(bound=false,expert=true,description="Specifies what desktop layer is used.")public void setLayer(Integer layer)
      Convenience method for setting the layer attribute of this component.
      Parameters:
      layer - anInteger object specifying this frame's desktop layer
      Throws:
      NullPointerException - iflayer isnull
      See Also:
    • setLayer

      @BeanProperty(bound=false,expert=true,description="Specifies what desktop layer is used.")public void setLayer(int layer)
      Convenience method for setting the layer attribute of this component. The methodsetLayer(Integer) should be used for layer values predefined inJLayeredPane. When usingsetLayer(int), care must be taken not to accidentally clash with those values.
      Parameters:
      layer - an integer specifying this internal frame's desktop layer
      Since:
      1.3
      See Also:
    • getLayer

      public int getLayer()
      Convenience method for getting the layer attribute of this component.
      Returns:
      anInteger object specifying this frame's desktop layer
      See Also:
    • getDesktopPane

      @BeanProperty(bound=false)public JDesktopPane getDesktopPane()
      Convenience method that searches the ancestor hierarchy for aJDesktop instance. IfJInternalFrame finds none, thedesktopIcon tree is searched.
      Returns:
      theJDesktopPane this internal frame belongs to, ornull if none is found
    • setDesktopIcon

      @BeanProperty(description="The icon shown when this internal frame is minimized.")public void setDesktopIcon(JInternalFrame.JDesktopIcon d)
      Sets theJDesktopIcon associated with thisJInternalFrame.
      Parameters:
      d - theJDesktopIcon to display on the desktop
      Throws:
      NullPointerException - if thed isnull
      See Also:
    • getDesktopIcon

      public JInternalFrame.JDesktopIcon getDesktopIcon()
      Returns theJDesktopIcon used when thisJInternalFrame is iconified.
      Returns:
      theJDesktopIcon displayed on the desktop
      See Also:
    • getNormalBounds

      public Rectangle getNormalBounds()
      If theJInternalFrame is not in maximized state, returnsgetBounds(); otherwise, returns the bounds that theJInternalFrame would be restored to.
      Returns:
      aRectangle containing the bounds of this frame when in the normal state
      Since:
      1.3
    • setNormalBounds

      public void setNormalBounds(Rectangle r)
      Sets the normal bounds for this internal frame, the bounds that this internal frame would be restored to from its maximized state. This method is intended for use only by desktop managers.
      Parameters:
      r - the bounds that this internal frame should be restored to
      Since:
      1.3
    • getFocusOwner

      public Component getFocusOwner()
      If thisJInternalFrame is active, returns the child that has focus. Otherwise, returnsnull.
      Returns:
      the component with focus, ornull if no children have focus
      Since:
      1.3
    • getMostRecentFocusOwner

      @BeanProperty(bound=false)public Component getMostRecentFocusOwner()
      Returns the child component of thisJInternalFrame that will receive the focus when thisJInternalFrame is selected. If thisJInternalFrame is currently selected, this method returns the same component as thegetFocusOwner method. If thisJInternalFrame is not selected, then the child component that most recently requested focus will be returned. If no child component has ever requested focus, then thisJInternalFrame's initial focusable component is returned. If no such child exists, then thisJInternalFrame's default component to focus is returned.
      Returns:
      the child component that will receive focus when thisJInternalFrame is selected
      Since:
      1.4
      See Also:
    • restoreSubcomponentFocus

      public void restoreSubcomponentFocus()
      Requests the internal frame to restore focus to the last subcomponent that had focus. This is used by the UI when the user selected this internal frame -- for example, by clicking on the title bar.
      Since:
      1.3
    • reshape

      public void reshape(int x, int y, int width, int height)
      Moves and resizes this component. Unlike other components, this implementation also forces re-layout, so that frame decorations such as the title bar are always redisplayed.
      Overrides:
      reshape in class JComponent
      Parameters:
      x - an integer giving the component's new horizontal position measured in pixels from the left of its container
      y - an integer giving the component's new vertical position, measured in pixels from the bottom of its container
      width - an integer giving the component's new width in pixels
      height - an integer giving the component's new height in pixels
      See Also:
    • addInternalFrameListener

      public void addInternalFrameListener(InternalFrameListener l)
      Adds the specified listener to receive internal frame events from this internal frame.
      Parameters:
      l - the internal frame listener
    • removeInternalFrameListener

      public void removeInternalFrameListener(InternalFrameListener l)
      Removes the specified internal frame listener so that it no longer receives internal frame events from this internal frame.
      Parameters:
      l - the internal frame listener
    • getInternalFrameListeners

      @BeanProperty(bound=false)public InternalFrameListener[] getInternalFrameListeners()
      Returns an array of all theInternalFrameListeners added to thisJInternalFrame withaddInternalFrameListener.
      Returns:
      all of theInternalFrameListeners added or an empty array if no listeners have been added
      Since:
      1.4
      See Also:
    • fireInternalFrameEvent

      protected void fireInternalFrameEvent(int id)
      Fires an internal frame event.
      Parameters:
      id - the type of the event being fired; one of the following:
      • 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
      If the event type is not one of the above, nothing happens.
    • doDefaultCloseAction

      public void doDefaultCloseAction()
      Fires anINTERNAL_FRAME_CLOSING event and then performs the action specified by the internal frame's default close operation. This method is typically invoked by the look-and-feel-implemented action handler for the internal frame's close button.
      Since:
      1.3
      See Also:
    • setDefaultCloseOperation

      public void setDefaultCloseOperation(int operation)
      Sets the operation that will happen by default when the user initiates a "close" on this internal frame. The possible choices are:

      DO_NOTHING_ON_CLOSE
      Do nothing. This requires the program to handle the operation in theinternalFrameClosing method of a registeredInternalFrameListener object.
      HIDE_ON_CLOSE
      Automatically make the internal frame invisible.
      DISPOSE_ON_CLOSE
      Automatically dispose of the internal frame.

      The default value isDISPOSE_ON_CLOSE. Before performing the specified close operation, the internal frame fires anINTERNAL_FRAME_CLOSING event.

      Parameters:
      operation - one of the following constants defined injavax.swing.WindowConstants (an interface implemented byJInternalFrame):DO_NOTHING_ON_CLOSE,HIDE_ON_CLOSE, orDISPOSE_ON_CLOSE
      See Also:
    • getDefaultCloseOperation

      public int getDefaultCloseOperation()
      Returns the default operation that occurs when the user initiates a "close" on this internal frame.
      Returns:
      the operation that will occur when the user closes the internal frame
      See Also:
    • pack

      public void pack()
      Causes subcomponents of thisJInternalFrame to be laid out at their preferred size. Internal frames that are iconized or maximized are first restored and then packed. If the internal frame is unable to be restored its state is not changed and will not be packed.
      See Also:
    • show

      public void show()
      If the internal frame is not visible, brings the internal frame to the front, makes it visible, and attempts to select it. The first time the internal frame is made visible, this method also fires anINTERNAL_FRAME_OPENED event. This method does nothing if the internal frame is already visible. Invoking this method has the same result as invokingsetVisible(true).
      Overrides:
      show in class Component
      See Also:
    • hide

      public void hide()
      Description copied from class: JComponent
      Overrides:
      hide in class JComponent
    • dispose

      public void dispose()
      Makes this internal frame invisible, unselected, and closed. If the frame is not already closed, this method fires anINTERNAL_FRAME_CLOSED event. The results of invoking this method are similar tosetClosed(true), butdispose always succeeds in closing the internal frame and does not fire anINTERNAL_FRAME_CLOSING event.
      See Also:
    • toFront

      public void toFront()
      Brings this internal frame to the front. Places this internal frame at the top of the stacking order and makes the corresponding adjustment to other visible internal frames.
      See Also:
    • toBack

      public void toBack()
      Sends this internal frame to the back. Places this internal frame at the bottom of the stacking order and makes the corresponding adjustment to other visible internal frames.
      See Also:
    • setFocusCycleRoot

      public final void setFocusCycleRoot(boolean focusCycleRoot)
      Does nothing becauseJInternalFrames must always be roots of a focus traversal cycle.
      Overrides:
      setFocusCycleRoot in class Container
      Parameters:
      focusCycleRoot - this value is ignored
      Since:
      1.4
      See Also:
    • isFocusCycleRoot

      public final boolean isFocusCycleRoot()
      Always returnstrue because allJInternalFrames must be roots of a focus traversal cycle.
      Overrides:
      isFocusCycleRoot in class Container
      Returns:
      true
      Since:
      1.4
      See Also:
    • getFocusCycleRootAncestor

      @BeanProperty(bound=false)public final Container getFocusCycleRootAncestor()
      Always returnsnull becauseJInternalFrames must always be roots of a focus traversal cycle.
      Overrides:
      getFocusCycleRootAncestor in class Component
      Returns:
      null
      Since:
      1.4
      See Also:
    • getWarningString

      @Deprecated(since="24",forRemoval=true)@BeanProperty(bound=false)public final String getWarningString()
      Deprecated, for removal: This API element is subject to removal in a future version.
      since JDK 24
      Gets the warning string that is displayed with this internal frame. This method always returnsnull. Warning strings are no longer applicable, even to top-level windows, so this method may be removed in a future release
      Returns:
      null
      See Also:
    • paramString

      protected String paramString()
      Returns a string representation of thisJInternalFrame. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not benull.
      Overrides:
      paramString in class JComponent
      Returns:
      a string representation of thisJInternalFrame
    • paintComponent

      protected void paintComponent(Graphics g)
      Overridden to allow optimized painting when the internal frame is being dragged.
      Overrides:
      paintComponent in class JComponent
      Parameters:
      g - theGraphics object to protect
      See Also:
    • getAccessibleContext

      @BeanProperty(bound=false)public AccessibleContext getAccessibleContext()
      Gets theAccessibleContext associated with thisJInternalFrame. For internal frames, theAccessibleContext takes the form of anAccessibleJInternalFrame object. A newAccessibleJInternalFrame instance is created if necessary.
      Specified by:
      getAccessibleContext in interface Accessible
      Overrides:
      getAccessibleContext in class Component
      Returns:
      anAccessibleJInternalFrame that serves as theAccessibleContext of thisJInternalFrame
      See Also: