javax.swing.plaf.basic
Class BasicInternalFrameTitlePane

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.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 JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

Author:
David Kloba, Steve Wilson
See Also:
Serialized Form

Nested Class Summary
 class BasicInternalFrameTitlePane.CloseAction
          This inner class is marked "public" due to a compiler bug.
 class BasicInternalFrameTitlePane.IconifyAction
          This inner class is marked "public" due to a compiler bug.
 class BasicInternalFrameTitlePane.MaximizeAction
          This inner class is marked "public" due to a compiler bug.
 class BasicInternalFrameTitlePane.MoveAction
          This inner class is marked "public" due to a compiler bug.
private  class BasicInternalFrameTitlePane.NoFocusButton
           
 class BasicInternalFrameTitlePane.PropertyChangeHandler
          This inner class is marked "public" due to a compiler bug.
 class BasicInternalFrameTitlePane.RestoreAction
          This inner class is marked "public" due to a compiler bug.
private  class BasicInternalFrameTitlePane.ShowSystemMenuAction
           
 class BasicInternalFrameTitlePane.SizeAction
          This inner class is marked "public" due to a compiler bug.
 class BasicInternalFrameTitlePane.SystemMenuBar
          This inner class is marked "public" due to a compiler bug.
 class BasicInternalFrameTitlePane.TitlePaneLayout
          This inner class is marked "public" due to a compiler bug.
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected static String CLOSE_CMD
           
protected  Action closeAction
           
protected  JButton closeButton
           
private  String closeButtonToolTip
           
protected  Icon closeIcon
           
protected  JInternalFrame frame
           
protected  JButton iconButton
           
private  String iconButtonToolTip
           
protected  Icon iconIcon
           
protected static String ICONIFY_CMD
           
protected  Action iconifyAction
           
protected  JButton maxButton
           
private  String maxButtonToolTip
           
protected  Icon maxIcon
           
protected static String MAXIMIZE_CMD
           
protected  Action maximizeAction
           
protected  JMenuBar menuBar
           
protected  Icon minIcon
           
protected static String MOVE_CMD
           
protected  Action moveAction
           
protected  Color notSelectedTextColor
           
protected  Color notSelectedTitleColor
           
protected  java.beans.PropertyChangeListener propertyChangeListener
           
protected static String RESTORE_CMD
           
protected  Action restoreAction
           
private  String restoreButtonToolTip
           
protected  Color selectedTextColor
           
protected  Color selectedTitleColor
           
protected static String SIZE_CMD
           
protected  Action sizeAction
           
protected  JMenu windowMenu
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
BasicInternalFrameTitlePane(JInternalFrame f)
           
 
Method Summary
protected  void addSubComponents()
           
protected  void addSystemMenuItems(JMenu systemMenu)
           
protected  void assembleSystemMenu()
           
(package private)  ActionMap createActionMap()
           
protected  void createActions()
           
protected  void createButtons()
           
protected  LayoutManager createLayout()
           
protected  java.beans.PropertyChangeListener createPropertyChangeListener()
           
protected  JMenu createSystemMenu()
           
protected  JMenuBar createSystemMenuBar()
           
protected  void enableActions()
           
protected  String getTitle(String text, FontMetrics fm, int availTextWidth)
           
protected  void installDefaults()
           
protected  void installListeners()
           
protected  void installTitlePane()
           
 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()
           
protected  void showSystemMenu()
           
protected  void uninstallDefaults()
           
protected  void uninstallListeners()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

menuBar

protected JMenuBar menuBar

iconButton

protected JButton iconButton

maxButton

protected JButton maxButton

closeButton

protected JButton closeButton

windowMenu

protected JMenu windowMenu

frame

protected JInternalFrame frame

selectedTitleColor

protected Color selectedTitleColor

selectedTextColor

protected Color selectedTextColor

notSelectedTitleColor

protected Color notSelectedTitleColor

notSelectedTextColor

protected Color notSelectedTextColor

maxIcon

protected Icon maxIcon

minIcon

protected Icon minIcon

iconIcon

protected Icon iconIcon

closeIcon

protected Icon closeIcon

propertyChangeListener

protected java.beans.PropertyChangeListener propertyChangeListener

closeAction

protected Action closeAction

maximizeAction

protected Action maximizeAction

iconifyAction

protected Action iconifyAction

restoreAction

protected Action restoreAction

moveAction

protected Action moveAction

sizeAction

protected Action sizeAction

CLOSE_CMD

protected static final String CLOSE_CMD

ICONIFY_CMD

protected static final String ICONIFY_CMD

RESTORE_CMD

protected static final String RESTORE_CMD

MAXIMIZE_CMD

protected static final String MAXIMIZE_CMD

MOVE_CMD

protected static final String MOVE_CMD

SIZE_CMD

protected static final String SIZE_CMD

closeButtonToolTip

private String closeButtonToolTip

iconButtonToolTip

private String iconButtonToolTip

restoreButtonToolTip

private String restoreButtonToolTip

maxButtonToolTip

private String maxButtonToolTip
Constructor Detail

BasicInternalFrameTitlePane

public BasicInternalFrameTitlePane(JInternalFrame f)
Method Detail

installTitlePane

protected void installTitlePane()

addSubComponents

protected void addSubComponents()

createActions

protected void createActions()

createActionMap

ActionMap createActionMap()

installListeners

protected void installListeners()

uninstallListeners

protected void uninstallListeners()

installDefaults

protected void installDefaults()

uninstallDefaults

protected void uninstallDefaults()

createButtons

protected void createButtons()

setButtonIcons

protected void setButtonIcons()

assembleSystemMenu

protected void assembleSystemMenu()

addSystemMenuItems

protected void addSystemMenuItems(JMenu systemMenu)

createSystemMenu

protected JMenu createSystemMenu()

createSystemMenuBar

protected JMenuBar createSystemMenuBar()

showSystemMenu

protected void showSystemMenu()

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 invoker super's implementation you must honor the opaque property, that is if this component is opaque, you must completely fill in the background in a non-opaque color. If you do not honor the opaque property you will likely see visual artifacts.

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)

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.


enableActions

protected void enableActions()

createPropertyChangeListener

protected java.beans.PropertyChangeListener createPropertyChangeListener()

createLayout

protected LayoutManager createLayout()