|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPanel com.levigo.util.swing.CollapsiblePane
public class CollapsiblePane
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
).
Nested Class Summary | |
---|---|
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. |
Nested classes/interfaces inherited from class javax.swing.JPanel |
---|
JPanel.AccessibleJPanel |
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 |
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. |
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 | |
---|---|
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. |
Method Summary | |
---|---|
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)
|
Methods inherited from class javax.swing.JPanel |
---|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
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)
.
Constructor Detail |
---|
@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.
Method Detail |
---|
@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
protected void addImpl(Component comp, Object constraints, int index)
addImpl
in class Container
@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)
setBounds
in class Component
@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 set
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |