public class CollapsiblePane extends JPanel
JCollapsiblePane
provides a component which can collapse or expand its content area
with animation and fade in/fade out effects. It also acts as a standard container for other Swing
components.
In this example, the JCollapsiblePane
is used to build a Search pane which can be
shown and hidden on demand.
<code> JCollapsiblePane cp = new JCollapsiblePane(); // JCollapsiblePane can be used like any other container cp.setLayout(new BorderLayout()); // the Controls panel with a textfield to filter the tree JPanel controls = new JPanel(new FlowLayout(FlowLayout.LEFT, 4, 0)); controls.add(new JLabel("Search:")); controls.add(new JTextField(10)); controls.add(new JButton("Refresh")); controls.setBorder(new TitledBorder("Filters")); cp.add("Center", controls); JFrame frame = new JFrame(); frame.setLayout(new BorderLayout()); // Put the "Controls" first frame.add("North", cp); // Then the tree - we assume the Controls would somehow filter the tree JScrollPane scroll = new JScrollPane(new JTree()); frame.add("Center", scroll); // Show/hide the "Controls" JButton toggle = new JButton(cp.getActionMap().get( JCollapsiblePane.TOGGLE_ACTION)); toggle.setText("Show/Hide Search Panel"); frame.add("South", toggle); frame.pack(); frame.setVisible(true); </code>
Note: JCollapsiblePane
requires its parent container to have a
LayoutManager
using getPreferredSize()
when calculating its layout
BorderLayout
).
Modifier and Type | Class and Description |
---|---|
static interface |
CollapsiblePane.JCollapsiblePaneContainer
Tagging interface for containers in a JCollapsiblePane hierarchy who needs to be revalidated
(invalidate/validate/repaint) when the pane is expanding or collapsing.
|
static class |
CollapsiblePane.Style
Enum for possible options regarding the strategy how a shrunken collapsible pane lays out its
contents.
|
JPanel.AccessibleJPanel
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static String |
ANIMATION_STATE_KEY
Used when generating PropertyChangeEvents for the "animationState" property
|
static String |
COLLAPSED_ICON
The icon used by the "toggle" action when the JCollapsiblePane is expanded, i.e the icon which
indicates the pane can be collapsed.
|
static String |
COLLAPSED_NAME
The name used by the "toggle" action when the JCollapsiblePane is expanded, i.e the name which
indicates the pane can be collapsed.
|
static String |
EXPANDED_ICON
The icon used by the "toggle" action when the JCollapsiblePane is collapsed, i.e the icon which
indicates the pane can be expanded.
|
static String |
EXPANDED_NAME
The name used by the "toggle" action when the JCollapsiblePane is collapsed, i.e the name which
indicates the pane can be expanded.
|
static String |
TOGGLE_ACTION
JCollapsible has a built-in toggle action which can be bound to buttons.
|
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
CollapsiblePane()
Constructs a new JCollapsiblePane with a
JPanel as content pane and a vertical with a
gap of 2 pixels as layout manager. |
CollapsiblePane(Container contentPane)
Constructs a new JCollapsiblePane with a
JPanel as content pane and a vertical with a
gap of 2 pixels as layout manager. |
Modifier and Type | Method and Description |
---|---|
protected void |
addImpl(Component comp,
Object constraints,
int index) |
int |
getAnimationFPS() |
int |
getAnimationSteps() |
Border |
getBorder() |
Container |
getContentPanel() |
Insets |
getInsets() |
Insets |
getInsets(Insets insets) |
int |
getMaxAnimationStepSize() |
Dimension |
getMinimumSize() |
int |
getOrientation()
Deprecated.
Please use
getStyle() instead. |
Dimension |
getPreferredSize()
The critical part of the animation of this
JCollapsiblePane relies on the
calculation of its preferred size. |
CollapsiblePane.Style |
getStyle() |
boolean |
isAnimated() |
boolean |
isCollapsed() |
protected void |
paintBorder(Graphics g) |
void |
setAnimated(boolean animated)
If true, enables the animation when pane is collapsed/expanded.
|
void |
setAnimationFPS(int animationFPS) |
void |
setAnimationSteps(int animationSteps) |
void |
setBorder(Border border) |
void |
setBounds(int x,
int y,
int w,
int h) |
void |
setCollapsed(boolean val)
Expands or collapses this
JCollapsiblePane . |
void |
setContentPane(Container contentPanel)
Sets the content pane of this JCollapsiblePane.
|
void |
setMaxAnimationStepSize(int maxAnimationStepSize) |
void |
setOrientation(int orientation)
Deprecated.
Please use
setStyle(Style) instead. |
void |
setStyle(CollapsiblePane.Style style) |
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, 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, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
add, add, add, add, add, addContainerListener, 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, transferFocusDownCycle, validate, validateTree
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, 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, transferFocusBackward, transferFocusUpCycle
public static final String ANIMATION_STATE_KEY
public static final String COLLAPSED_ICON
public static final String COLLAPSED_NAME
public static final String EXPANDED_ICON
public static final String EXPANDED_NAME
public static final String TOGGLE_ACTION
collapsiblePane.getActionMap().get(JCollapsiblePane.TOGGLE_ACTION)
.@CallOnEDT public CollapsiblePane(Container contentPane)
JPanel
as content pane and a vertical with a
gap of 2 pixels as layout manager.@CallOnEDT public CollapsiblePane()
JPanel
as content pane and a vertical with a
gap of 2 pixels as layout manager.@CallOnEDT public void setBorder(Border border)
setBorder
in class JComponent
protected void paintBorder(Graphics g)
paintBorder
in class JComponent
@CallOnEDT public Border getBorder()
getBorder
in class JComponent
@CallOnEDT public Insets getInsets(Insets insets)
getInsets
in class JComponent
@CallOnEDT public Insets getInsets()
getInsets
in class JComponent
@CallOnEDT public void setContentPane(Container contentPanel)
contentPanel
- IllegalArgumentException
- if contentPanel is null@CallOnEDT public Container getContentPanel()
@CallOnEDT public void setAnimated(boolean animated)
When animated, the JCollapsiblePane
will progressively reduce (when collapsing) or
enlarge (when expanding) the height of its content area until it becomes 0 or until it reaches
the preferred height of the components it contains. The transparency of the content area will
also change during the animation.
If not animated, the JCollapsiblePane
will simply hide (collapsing) or show
(expanding) its content area.
animated
- @CallOnEDT public boolean isAnimated()
setAnimated(boolean)
@CallOnEDT public boolean isCollapsed()
@CallOnEDT public void setCollapsed(boolean val)
JCollapsiblePane
.
If the component is collapsed and val
is false, then this call expands the
JCollapsiblePane, such that the entire JCollapsiblePane will be visible. If
isAnimated()
returns true, the expansion will be accompanied by an animation.
However, if the component is expanded and val
is true, then this call collapses
the JCollapsiblePane, such that the entire JCollapsiblePane will be invisible. If
isAnimated()
returns true, the collapse will be accompanied by an animation.
isAnimated()
,
setAnimated(boolean)
@CallOnEDT public Dimension getMinimumSize()
getMinimumSize
in class JComponent
@CallOnEDT public Dimension getPreferredSize()
JCollapsiblePane
relies on the
calculation of its preferred size. During the animation, its preferred size (specially its
height) will change, when expanding, from 0 to the preferred size of the content pane, and the
reverse when collapsing.getPreferredSize
in class JComponent
@CallOnEDT public final void setBounds(int x, int y, int w, int h)
@Deprecated @CallOnEDT public int getOrientation()
getStyle()
instead.SwingConstants.HORIZONTAL
,
SwingConstants.VERTICAL
@Deprecated @CallOnEDT public void setOrientation(int orientation)
setStyle(Style)
instead.orientation
- the orientation to setSwingConstants.HORIZONTAL
,
SwingConstants.VERTICAL
@CallOnEDT public int getAnimationSteps()
@CallOnEDT public void setAnimationSteps(int animationSteps)
animationSteps
- the animationSteps to set@CallOnEDT public int getMaxAnimationStepSize()
@CallOnEDT public void setMaxAnimationStepSize(int maxAnimationStepSize)
maxAnimationStepSize
- the maxAnimationStepSize to set@CallOnEDT public int getAnimationFPS()
@CallOnEDT public void setAnimationFPS(int animationFPS)
animationFPS
- the animationFPS to set@CallOnEDT public CollapsiblePane.Style getStyle()
@CallOnEDT public void setStyle(CollapsiblePane.Style style)
style
- the style to setCopyright © 2024 levigo holding gmbh. All rights reserved.