com.jgoodies.uif_lite.panel
Class SimpleInternalFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by com.jgoodies.uif_lite.panel.SimpleInternalFrame
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class SimpleInternalFrame
extends javax.swing.JPanel

A JPanel subclass that has a drop shadow border and that provides a header with icon, title and tool bar.

This class can be used to replace the JInternalFrame, for use outside of a JDesktopPane. The SimpleInternalFrame is less flexible but often more usable; it avoids overlapping windows and scales well up to IDE size. Several customers have reported that they and their clients feel much better with both the appearance and the UI feel.

The SimpleInternalFrame provides the following bound properties: frameIcon, title, toolBar, content, selected.

By default the SimpleInternalFrame is in selected state. If you don't do anything, multiple simple internal frames will be displayed as selected.

Version:
$Revision: 1.8 $
Author:
Karsten Lentzsch
See Also:
JInternalFrame, JDesktopPane, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
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.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
SimpleInternalFrame()
          Constructs a SimpleInternalFrame with a default title.
SimpleInternalFrame(javax.swing.Icon icon, java.lang.String title)
          Constructs a SimpleInternalFrame with the specified icon, and title.
SimpleInternalFrame(javax.swing.Icon icon, java.lang.String title, javax.swing.JToolBar bar, javax.swing.JComponent content)
          Constructs a SimpleInternalFrame with the specified icon, title, tool bar, and content panel.
SimpleInternalFrame(java.lang.String title)
          Constructs a SimpleInternalFrame with the specified title.
SimpleInternalFrame(java.lang.String title, javax.swing.JToolBar bar, javax.swing.JComponent content)
          Constructs a SimpleInternalFrame with the specified title, tool bar, and content panel.
 
Method Summary
 java.awt.Component getContent()
          Returns the content - null, if none has been set.
 java.awt.Container getContentPane()
          Returns the content pane.
 javax.swing.border.Border getContentPaneBorder()
          Returns the border of the content pane or null if no border is currently set.
 javax.swing.Icon getFrameIcon()
          Returns the frame's icon.
protected  java.awt.Color getHeaderBackground()
          Determines and answers the header's background color.
protected  java.awt.Color getTextForeground(boolean isSelected)
          Determines and answers the header's text foreground color.
 java.lang.String getTitle()
          Returns the frame's title text.
 java.awt.Font getTitleFont()
          Returns the frame's title font.
 javax.swing.JToolBar getToolBar()
          Returns the current toolbar, null if none has been set before.
 boolean isSelected()
          Answers if the panel is currently selected (or in other words active) or not.
 void setContent(java.awt.Component newContent)
          Sets a new panel content; replaces any existing content, if existing.
 void setContentPaneBorder(javax.swing.border.Border border)
          Sets the border for the content pane.
 void setFrameIcon(javax.swing.Icon newIcon)
          Sets a new frame icon.
 void setSelected(boolean newValue)
          This panel draws its title bar differently if it is selected, which may be used to indicate to the user that this panel has the focus, or should get more attention than other simple internal frames.
 void setTitle(java.lang.String newText)
          Sets a new title text.
 void setTitleFont(java.awt.Font newFont)
          Sets a new title font.
 void setToolBar(javax.swing.JToolBar newToolBar)
          Sets a new tool bar in the header.
 void updateUI()
          Updates the UI.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, 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, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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
 
Methods inherited from 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, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, 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
 

Constructor Detail

SimpleInternalFrame

public SimpleInternalFrame()
Constructs a SimpleInternalFrame with a default title. This constructor is intended for visual editors.


SimpleInternalFrame

public SimpleInternalFrame(java.lang.String title)
Constructs a SimpleInternalFrame with the specified title. The title is intended to be non-blank, or in other words should contain non-space characters.

Parameters:
title - the initial title

SimpleInternalFrame

public SimpleInternalFrame(javax.swing.Icon icon,
                           java.lang.String title)
Constructs a SimpleInternalFrame with the specified icon, and title.

Parameters:
icon - the initial icon
title - the initial title

SimpleInternalFrame

public SimpleInternalFrame(java.lang.String title,
                           javax.swing.JToolBar bar,
                           javax.swing.JComponent content)
Constructs a SimpleInternalFrame with the specified title, tool bar, and content panel.

Parameters:
title - the initial title
bar - the initial tool bar
content - the initial content pane

SimpleInternalFrame

public SimpleInternalFrame(javax.swing.Icon icon,
                           java.lang.String title,
                           javax.swing.JToolBar bar,
                           javax.swing.JComponent content)
Constructs a SimpleInternalFrame with the specified icon, title, tool bar, and content panel.

Parameters:
icon - the initial icon
title - the initial title
bar - the initial tool bar
content - the initial content pane
Method Detail

getFrameIcon

public javax.swing.Icon getFrameIcon()
Returns the frame's icon.

Returns:
the frame's icon

setFrameIcon

public void setFrameIcon(javax.swing.Icon newIcon)
Sets a new frame icon.

Parameters:
newIcon - the icon to be set

getTitle

public java.lang.String getTitle()
Returns the frame's title text.

Returns:
String the current title text

setTitle

public void setTitle(java.lang.String newText)
Sets a new title text.

Parameters:
newText - the title text to be set

getTitleFont

public java.awt.Font getTitleFont()
Returns the frame's title font.

Returns:
Font the current title font

setTitleFont

public void setTitleFont(java.awt.Font newFont)
Sets a new title font.

Parameters:
newFont - the title font to be set

getToolBar

public javax.swing.JToolBar getToolBar()
Returns the current toolbar, null if none has been set before.

Returns:
the current toolbar - if any

setToolBar

public void setToolBar(javax.swing.JToolBar newToolBar)
Sets a new tool bar in the header.

Parameters:
newToolBar - the tool bar to be set in the header

getContent

public java.awt.Component getContent()
Returns the content - null, if none has been set.

Returns:
the current content

setContent

public void setContent(java.awt.Component newContent)
Sets a new panel content; replaces any existing content, if existing.

Parameters:
newContent - the panel's new content

getContentPane

public java.awt.Container getContentPane()
Returns the content pane. Compared to getContent(), this method is GUI designer compatible because it returns a java.awt.Container.

Returns:
the content pane

getContentPaneBorder

public javax.swing.border.Border getContentPaneBorder()
Returns the border of the content pane or null if no border is currently set.

Returns:
the border object for the content pane

setContentPaneBorder

public void setContentPaneBorder(javax.swing.border.Border border)
Sets the border for the content pane. Enables setting the content pane border using a GUI designer.

Parameters:
border - the border for the content pane

isSelected

public boolean isSelected()
Answers if the panel is currently selected (or in other words active) or not. In the selected state, the header background will be rendered differently.

Returns:
boolean a boolean, where true means the frame is selected (currently active) and false means it is not

setSelected

public void setSelected(boolean newValue)
This panel draws its title bar differently if it is selected, which may be used to indicate to the user that this panel has the focus, or should get more attention than other simple internal frames.

Parameters:
newValue - a boolean, where true means the frame is selected (currently active) and false means it is not

updateUI

public void updateUI()
Updates the UI. In addition to the superclass behavior, we need to update the header component.

Overrides:
updateUI in class javax.swing.JPanel

getTextForeground

protected java.awt.Color getTextForeground(boolean isSelected)
Determines and answers the header's text foreground color. Tries to lookup a special color from the L&F. In case it is absent, it uses the standard internal frame forground.

Parameters:
isSelected - true to lookup the active color, false for the inactive
Returns:
the color of the foreground text

getHeaderBackground

protected java.awt.Color getHeaderBackground()
Determines and answers the header's background color. Tries to lookup a special color from the L&F. In case it is absent, it uses the standard internal frame background.

Returns:
the color of the header's background