Class CardPanel

All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer,

public class CardPanel
extends javax.swing.JPanel

A simpler alternative to a JPanel with a CardLayout. The AWT CardLayout layout manager can be inconvenient to use because the special "stack of cards" operations it supports require a cast to use. For example to show the card named "myCard" given a JPanel with a CardLayout one would write:

 ((CardLayout)(myJPanel.getLayout())).show(myJPanel, "myCard");
This doesn't work well with Swing - all of the CardLayout display operations, like show call validate directly. Swing supports automatic validation (see JComponent.revalidate()); this direct call to validate is inefficient.

The CardPane JPanel subclass is intended to support a layout with a modest number of cards, on the order of 100 or less. A cards name is it's component name, as in java.awt.Component.getName(), which is set when the component is added to the CardPanel:

 myCardPanel.add(myChild, "MyChildName");
 myChild.getName() => "MyChildName"
As with CardLayout, the first child added to a CardPanel is made visible and there's only one child visible at a time. The showCard method accepts either a childs name or the child itself:"MyChildName");;

The CardPanel class doesn't support the vgap/hgap CardLayout properties since one can add a Border, see JComponent.setBorder().

See Also:
Serialized Form

Inner classes inherited from class javax.swing.JPanel
Inner classes inherited from class javax.swing.JComponent
Inner classes inherited from class java.awt.Container
Inner classes inherited from class java.awt.Component
Fields inherited from class javax.swing.JComponent
Fields inherited from class java.awt.Component
Fields inherited from interface java.awt.image.ImageObserver
Constructor Summary
          Creates a CardPanel.
Method Summary
 int getVisibleChildIndex()
          Return the index of the first (and one would hope - only) visible child.
 void showCard(java.awt.Component card)
          Hide the currently visible child "card" and show the specified card.
 void showCard(java.lang.String name)
          Show the card with the specified name.
 void showFirstCard()
          Show the first card that was added to this CardPanel.
 void showLastCard()
          Show the last card that was added to this CardPanel.
 void showNextCard()
          Show the card that was added to this CardPanel after the currently visible card.
 void showPreviousCard()
          Show the card that was added to this CardPanel before the currently visible card.
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUIClassID, paramString, updateUI
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, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setLayout, validate, validateTree
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Constructor Detail


public CardPanel()
Creates a CardPanel. Children, called "cards" in this API, should be added with add(). The first child we be made visible, subsequent children will be hidden. To show a card, use one of the show*Card methods.
Method Detail


public int getVisibleChildIndex()
Return the index of the first (and one would hope - only) visible child. If a visible child can't be found, perhaps the caller has inexlicably hidden all of the children, then return -1.


public void showCard(java.awt.Component card)
Hide the currently visible child "card" and show the specified card. If the specified card isn't a child of the CardPanel then we add it here.


public void showCard(java.lang.String name)
Show the card with the specified name.
See Also:


public void showNextCard()
Show the card that was added to this CardPanel after the currently visible card. If the currently visible card was added last, then show the first card.


public void showPreviousCard()
Show the card that was added to this CardPanel before the currently visible card. If the currently visible card was added first, then show the last card.


public void showFirstCard()
Show the first card that was added to this CardPanel.


public void showLastCard()
Show the last card that was added to this CardPanel.