BasicInternalFrameTitlePane (Java SE 17 & JDK 17)
Description: declaration: module: java.desktop, package: javax.swing.plaf.basic, class: BasicInternalFrameTitlePane
Keywords: javax.swing.plaf.basic.BasicInternalFrameTitlePane class

Module java.desktop
Package javax.swing.plaf.basic

# Class BasicInternalFrameTitlePane

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.plaf.basic.BasicInternalFrameTitlePane

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`

Direct Known Subclasses:
  `MetalInternalFrameTitlePane`

public class BasicInternalFrameTitlePane extends JComponent
The class that manages a basic title bar

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 the `java.beans` package. Please see `XMLEncoder`.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `class`
  `BasicInternalFrameTitlePane.CloseAction`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.IconifyAction`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.MaximizeAction`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.MoveAction`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.PropertyChangeHandler`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.RestoreAction`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.SizeAction`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.SystemMenuBar`
  This class should be treated as a "protected" inner class.
  `class`
  `BasicInternalFrameTitlePane.TitlePaneLayout`
  This class should be treated as a "protected" inner class.

  ## Nested classes/interfaces declared in class javax.swing.JComponent

  `JComponent.AccessibleJComponent`

  ## Nested classes/interfaces declared in class java.awt.Container

  `Container.AccessibleAWTContainer`

  ## Nested classes/interfaces declared in class java.awt.Component

  `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final String`
  `CLOSE_CMD`
  The close button text property.
  `protected Action`
  `closeAction`
  The instance of a `CloseAction`.
  `protected JButton`
  `closeButton`
  The close button.
  `protected Icon`
  `closeIcon`
  The close icon.
  `protected JInternalFrame`
  `frame`
  The instance of `JInternalFrame`.
  `protected JButton`
  `iconButton`
  The iconify button.
  `protected Icon`
  `iconIcon`
  The iconify icon.
  `protected static final String`
  `ICONIFY_CMD`
  The minimize button text property.
  `protected Action`
  `iconifyAction`
  The instance of an `IconifyAction`.
  `protected JButton`
  `maxButton`
  The maximize button.
  `protected Icon`
  `maxIcon`
  The maximize icon.
  `protected static final String`
  `MAXIMIZE_CMD`
  The maximize button text property.
  `protected Action`
  `maximizeAction`
  The instance of a `MaximizeAction`.
  `protected JMenuBar`
  `menuBar`
  The instance of `JMenuBar`.
  `protected Icon`
  `minIcon`
  The minimize icon.
  `protected static final String`
  `MOVE_CMD`
  The move button text property.
  `protected Action`
  `moveAction`
  The instance of a `MoveAction`.
  `protected Color`
  `notSelectedTextColor`
  The color of a not selected text.
  `protected Color`
  `notSelectedTitleColor`
  The color of a not selected title.
  `protected PropertyChangeListener`
  `propertyChangeListener`
  The instance of a `PropertyChangeListener`.
  `protected static final String`
  `RESTORE_CMD`
  The restore button text property.
  `protected Action`
  `restoreAction`
  The instance of a `RestoreAction`.
  `protected Color`
  `selectedTextColor`
  The color of a selected text.
  `protected Color`
  `selectedTitleColor`
  The color of a selected title.
  `protected static final String`
  `SIZE_CMD`
  The size button text property.
  `protected Action`
  `sizeAction`
  The instance of a `SizeAction`.
  `protected JMenu`
  `windowMenu`
  The instance of `JMenu`.

  ### Fields declared in class javax.swing.JComponent

  `listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

  ### Fields declared in class java.awt.Component

  `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

  ### Fields declared in interface java.awt.image.ImageObserver

  `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BasicInternalFrameTitlePane(JInternalFrame f)`
  Constructs a new instance of `BasicInternalFrameTitlePane`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addSubComponents()`
  Adds subcomponents.
  `protected void`
  `addSystemMenuItems(JMenu systemMenu)`
  Adds system menu items to `systemMenu`.
  `protected void`
  `assembleSystemMenu()`
  Assembles system menu.
  `protected void`
  `createActions()`
  Creates actions.
  `protected void`
  `createButtons()`
  Creates buttons.
  `protected LayoutManager`
  `createLayout()`
  Returns a layout manager.
  `protected PropertyChangeListener`
  `createPropertyChangeListener()`
  Returns an instance of `PropertyChangeListener`.
  `protected JMenu`
  `createSystemMenu()`
  Returns a new instance of `JMenu`.
  `protected JMenuBar`
  `createSystemMenuBar()`
  Returns a new instance of `JMenuBar`.
  `protected void`
  `enableActions()`
  Enables actions.
  `protected String`
  `getTitle(String text, FontMetrics fm, int availTextWidth)`
  Returns the title.
  `protected void`
  `installDefaults()`
  Installs default properties.
  `protected void`
  `installListeners()`
  Registers listeners.
  `protected void`
  `installTitlePane()`
  Installs the title pane.
  `void`
  `paintComponent(Graphics g)`
  Calls the UI delegate's paint method, if the UI delegate is non-`null`.
  `protected void`
  `paintTitleBackground(Graphics g)`
  Invoked from paintComponent.
  `protected void`
  `postClosingEvent(JInternalFrame frame)`
  Post a WINDOW_CLOSING-like event to the frame, so that it can be treated like a regular `Frame`.
  `protected void`
  `setButtonIcons()`
  Sets the button icons.
  `protected void`
  `showSystemMenu()`
  Shows system menu.
  `protected void`
  `uninstallDefaults()`
  Uninstalls default properties.
  `protected void`
  `uninstallListeners()`
  Unregisters listeners.

  ### Methods declared in class javax.swing.JComponent

  `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUI, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI`

  ### Methods declared in class java.awt.Container

  `add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree`

  ### Methods declared in class java.awt.Component

  `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### menuBar

    protected JMenuBar menuBar
    The instance of `JMenuBar`.

  - ### iconButton

    protected JButton iconButton
    The iconify button.

  - ### maxButton

    protected JButton maxButton
    The maximize button.

  - ### closeButton

    protected JButton closeButton
    The close button.

  - ### windowMenu

    protected JMenu windowMenu
    The instance of `JMenu`.

  - ### frame

    protected JInternalFrame frame
    The instance of `JInternalFrame`.

  - ### selectedTitleColor

    protected Color selectedTitleColor
    The color of a selected title.

  - ### selectedTextColor

    protected Color selectedTextColor
    The color of a selected text.

  - ### notSelectedTitleColor

    protected Color notSelectedTitleColor
    The color of a not selected title.

  - ### notSelectedTextColor

    protected Color notSelectedTextColor
    The color of a not selected text.

  - ### maxIcon

    protected Icon maxIcon
    The maximize icon.

  - ### minIcon

    protected Icon minIcon
    The minimize icon.

  - ### iconIcon

    protected Icon iconIcon
    The iconify icon.

  - ### closeIcon

    protected Icon closeIcon
    The close icon.

  - ### propertyChangeListener

    protected PropertyChangeListener propertyChangeListener
    The instance of a `PropertyChangeListener`.

  - ### closeAction

    protected Action closeAction
    The instance of a `CloseAction`.

  - ### maximizeAction

    protected Action maximizeAction
    The instance of a `MaximizeAction`.

  - ### iconifyAction

    protected Action iconifyAction
    The instance of an `IconifyAction`.

  - ### restoreAction

    protected Action restoreAction
    The instance of a `RestoreAction`.

  - ### moveAction

    protected Action moveAction
    The instance of a `MoveAction`.

  - ### sizeAction

    protected Action sizeAction
    The instance of a `SizeAction`.

  - ### CLOSE_CMD

    protected static final String CLOSE_CMD
    The close button text property.

  - ### ICONIFY_CMD

    protected static final String ICONIFY_CMD
    The minimize button text property.

  - ### RESTORE_CMD

    protected static final String RESTORE_CMD
    The restore button text property.

  - ### MAXIMIZE_CMD

    protected static final String MAXIMIZE_CMD
    The maximize button text property.

  - ### MOVE_CMD

    protected static final String MOVE_CMD
    The move button text property.

  - ### SIZE_CMD

    protected static final String SIZE_CMD
    The size button text property.

- ## Constructor Details

  - ### BasicInternalFrameTitlePane

    public BasicInternalFrameTitlePane(JInternalFrame f)
    Constructs a new instance of `BasicInternalFrameTitlePane`.
    Parameters:
      `f` - an instance of `JInternalFrame`

- ## Method Details

  - ### installTitlePane

    protected void installTitlePane()
    Installs the title pane.

  - ### addSubComponents

    protected void addSubComponents()
    Adds subcomponents.

  - ### createActions

    protected void createActions()
    Creates actions.

  - ### installListeners

    protected void installListeners()
    Registers listeners.

  - ### uninstallListeners

    protected void uninstallListeners()
    Unregisters listeners.

  - ### installDefaults

    protected void installDefaults()
    Installs default properties.

  - ### uninstallDefaults

    protected void uninstallDefaults()
    Uninstalls default properties.

  - ### createButtons

    protected void createButtons()
    Creates buttons.

  - ### setButtonIcons

    protected void setButtonIcons()
    Sets the button icons.

  - ### assembleSystemMenu

    protected void assembleSystemMenu()
    Assembles system menu.

  - ### addSystemMenuItems

    protected void addSystemMenuItems(JMenu systemMenu)
    Adds system menu items to `systemMenu`.
    Parameters:
      `systemMenu` - an instance of `JMenu`

  - ### createSystemMenu

    protected JMenu createSystemMenu()
    Returns a new instance of `JMenu`.
    Returns:
      a new instance of `JMenu`

  - ### createSystemMenuBar

    protected JMenuBar createSystemMenuBar()
    Returns a new instance of `JMenuBar`.
    Returns:
      a new instance of `JMenuBar`

  - ### showSystemMenu

    protected void showSystemMenu()
    Shows system menu.

  - ### paintComponent

    public void paintComponent(Graphics g)
    Description copied from class: `JComponent`
    Calls the UI delegate's paint method, if the UI delegate is non-`null`. We pass the delegate a copy of the `Graphics` object to protect the rest of the paint code from irrevocable changes (for example, `Graphics.translate`).

    If you override this in a subclass you should not make permanent changes to the passed in `Graphics`. For example, you should not alter the clip `Rectangle` or modify the transform. If you need to do these operations you may find it easier to create a new `Graphics` from the passed in `Graphics` and manipulate it. Further, if you do not invoke super's implementation you must honor the opaque property, that is if this component is opaque, you must completely fill in the background in an opaque color. If you do not honor the opaque property you will likely see visual artifacts.

    The passed in `Graphics` object might have a transform other than the identify transform installed on it. In this case, you might get unexpected results if you cumulatively apply another transform.

    Overrides:
      `paintComponent` in class `JComponent`
    Parameters:
      `g` - the `Graphics` object to protect
    See Also:
      - `JComponent.paint(java.awt.Graphics)`
      - `ComponentUI`

  - ### paintTitleBackground

    protected void paintTitleBackground(Graphics g)
    Invoked from paintComponent. Paints the background of the titlepane. All text and icons will then be rendered on top of this background.
    Parameters:
      `g` - the graphics to use to render the background
    Since:
      1.4

  - ### getTitle

    protected String getTitle(String text, FontMetrics fm, int availTextWidth)
    Returns the title.
    Parameters:
      `text` - a text
      `fm` - an instance of `FontMetrics`
      `availTextWidth` - an available text width
    Returns:
      the title.

  - ### postClosingEvent

    protected void postClosingEvent(JInternalFrame frame)
    Post a WINDOW_CLOSING-like event to the frame, so that it can be treated like a regular `Frame`.
    Parameters:
      `frame` - an instance of `JInternalFrame`

  - ### enableActions

    protected void enableActions()
    Enables actions.

  - ### createPropertyChangeListener

    protected PropertyChangeListener createPropertyChangeListener()
    Returns an instance of `PropertyChangeListener`.
    Returns:
      an instance of `PropertyChangeListener`

  - ### createLayout

    protected LayoutManager createLayout()
    Returns a layout manager.
    Returns:
      a layout manager