# 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 JComponent

`JComponent.AccessibleJComponent`

### Nested classes/interfaces declared in class Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces declared in class 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 JComponent

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

### Fields declared in class Component

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

### Fields declared in interface 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 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 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 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 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(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