public class HeavyTabbedPane extends javax.swing.JTabbedPane
JTabbedPane implementation that allows tabbed heavy-weight
components. When a component is added to a tab it is cached and an associated
light-weight stand-in component and added instead. When a tab is selected the
light-weight stand in is removed and it's heavy-weight counter-part is displayed.
When another tab is selected the reverse happens.
This was originally written to facilitate the use of Canvas3D objects in
a JTabbedPane, but I believe it will work for any heavy-weight component.
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListenerjavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
private java.util.List<java.awt.Component> |
blanks
Components, in tab index order, that will be displayed when a
tab is not selected.
|
private java.util.List<java.awt.Component> |
comps
Components, in tab index order, that will be displayed when a
tab is selected.
|
protected long |
heavyWeightDelay
Delay in milliseconds for
ChangeEvents. |
private static long |
serialVersionUID |
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUTlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT| Constructor and Description |
|---|
HeavyTabbedPane() |
| Modifier and Type | Method and Description |
|---|---|
protected java.awt.Component |
blank()
Create and return the component to be used when a tab is not visible.
|
protected void |
fireStateChanged()
ChangeEvent are delayed by the heavy weight delay
milliseconds to aid in the proper rendering of heavy weight components. |
java.awt.Component |
getComponentAt(int idx) |
int |
indexOfComponent(java.awt.Component comp) |
void |
insertTab(java.lang.String title,
javax.swing.Icon ico,
java.awt.Component comp,
java.lang.String tip,
int idx) |
void |
remove(int idx) |
void |
removeAll() |
void |
removeTabAt(int idx) |
void |
setComponentAt(int idx,
java.awt.Component comp) |
protected void |
setHeavyWeightDeleay(long d)
Set the delay to wait before firing a state change event.
|
void |
setSelectedComponent(java.awt.Component comp) |
void |
setSelectedIndex(int idx) |
add, add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, getUI, getUIClassID, indexAtLocation, indexOfTab, indexOfTab, indexOfTabComponent, isEnabledAt, paramString, remove, removeChangeListener, setBackgroundAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt, setUI, updateUIaddAncestorListener, 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, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, 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, updateaddContainerListener, 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, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, 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, 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, transferFocusBackward, transferFocusUpCycleprivate static final long serialVersionUID
protected long heavyWeightDelay
ChangeEvents.
This prevents some re-draw issues that popup with the heavy weight components.private java.util.List<java.awt.Component> comps
private java.util.List<java.awt.Component> blanks
public HeavyTabbedPane()
protected java.awt.Component blank()
protected void setHeavyWeightDeleay(long d)
d - If >= 0, no delay will be used.public void insertTab(java.lang.String title, javax.swing.Icon ico, java.awt.Component comp, java.lang.String tip, int idx)
insertTab in class javax.swing.JTabbedPanepublic int indexOfComponent(java.awt.Component comp)
indexOfComponent in class javax.swing.JTabbedPanepublic java.awt.Component getComponentAt(int idx)
getComponentAt in class javax.swing.JTabbedPanepublic void setComponentAt(int idx, java.awt.Component comp)
setComponentAt in class javax.swing.JTabbedPanepublic void setSelectedIndex(int idx)
setSelectedIndex in class javax.swing.JTabbedPanepublic void setSelectedComponent(java.awt.Component comp)
setSelectedComponent in class javax.swing.JTabbedPanepublic void removeTabAt(int idx)
removeTabAt in class javax.swing.JTabbedPanepublic void remove(int idx)
remove in class javax.swing.JTabbedPanepublic void removeAll()
removeAll in class javax.swing.JTabbedPaneprotected void fireStateChanged()
ChangeEvent are delayed by the heavy weight delay
milliseconds to aid in the proper rendering of heavy weight components.fireStateChanged in class javax.swing.JTabbedPaneJTabbedPane.fireStateChanged()