net.coderazzi.glasspane
Class GlassedPane

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by net.coderazzi.glasspane.GlassedPane
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable

public class GlassedPane
extends JComponent

Component that supports two layers: the basic, normal content, plus a glass pane that covers it.
Content is added on the normal layer, using operations such as

 glasspane.getContentPane().setLayout(new BorderLayout());
 glasspane.getContentPane().add(new JTable());
 
To hide the normal content pane and visualize the glass pane -which should block also any interaction with the content pane-, it is enough to do
 glassPane.getGlassPane().setVisible(true);
 
By default, the content pane is a JPanel.
Also by default, the glass pane is a GlassPane. However, any other component can be supplied by overriding the system property "net.coderazzi.glasspane.glassclass" (GLASS_CLASS_PROPERTY)
For example, to use by default the LabelGlassPane, it is possible to write:
 System.setProperty(GlassedPane.GLASS_CLASS_PROPERTY, 
                    LabelGlassPane.class.getName());
 

Version:
1.0
Author:
coderazzi (lu@coderazzi.net)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static String GLASS_CLASS_PROPERTY
          These property can be defined as a system property to specify the class used as default glass pane.
 
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
GlassedPane()
           
 
Method Summary
protected  Component createDefaultGlassPane()
          Defines the default glass pane, with by default is a GlassPane instance, unless the system properties include a valid definition for the property GLASS_CLASS_PROPERTY.
 Container getContentPane()
          Returns the content pane.
 Component getGlassPane()
          Returns the glass pane.
 Dimension getMinimumSize()
          Overrides the default implementation, to return the minimum size of the content panel.
 Dimension getPreferredSize()
          Overrides the default implementation, to return the preferred size of the content panel.
 boolean isOptimizedDrawingEnabled()
          Overrides the parent definition to disable optimized drawing when the glass panel is visible
 void setBounds(int x, int y, int width, int height)
          Overrides the parent definition to make the content and glass panes occupy the whole component area.
 void setContentPane(Container component)
          Defines the component to be used as content pane
 void setGlassPane(Component component)
          Defines the component to be used as glass pane
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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 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, 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

GLASS_CLASS_PROPERTY

public static final String GLASS_CLASS_PROPERTY
These property can be defined as a system property to specify the class used as default glass pane. By default, it corresponds to GlassPane

See Also:
Constant Field Values
Constructor Detail

GlassedPane

public GlassedPane()
Method Detail

getContentPane

public Container getContentPane()
Returns the content pane. It is, by default, a JPanel


getGlassPane

public Component getGlassPane()
Returns the glass pane.

The default glass pane can be redefined by overriding the method createDefaultGlassPane(), or by simply defining as system property the property GLASS_CLASS_PROPERTY.


setGlassPane

public void setGlassPane(Component component)
Defines the component to be used as glass pane


setContentPane

public void setContentPane(Container component)
Defines the component to be used as content pane


createDefaultGlassPane

protected Component createDefaultGlassPane()
Defines the default glass pane, with by default is a GlassPane instance, unless the system properties include a valid definition for the property GLASS_CLASS_PROPERTY.


isOptimizedDrawingEnabled

public boolean isOptimizedDrawingEnabled()
Overrides the parent definition to disable optimized drawing when the glass panel is visible

Overrides:
isOptimizedDrawingEnabled in class JComponent

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Overrides the parent definition to make the content and glass panes occupy the whole component area.

Overrides:
setBounds in class Component

getPreferredSize

public Dimension getPreferredSize()
Overrides the default implementation, to return the preferred size of the content panel.

Overrides:
getPreferredSize in class JComponent

getMinimumSize

public Dimension getMinimumSize()
Overrides the default implementation, to return the minimum size of the content panel.

Overrides:
getMinimumSize in class JComponent