Class JXMultiSplitPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jdesktop.swingx.JXMultiSplitPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,BackgroundPaintable
@JavaBean public class JXMultiSplitPane extends javax.swing.JPanel implements BackgroundPaintable
All properties in this class are bound: when a properties value is changed, all PropertyChangeListeners are fired.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classJXMultiSplitPane.AccessibleMultiSplitPaneprivate classJXMultiSplitPane.DefaultDividerPainterstatic classJXMultiSplitPane.DividerPainterDraws a single Divider.private classJXMultiSplitPane.InputHandler-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private javax.accessibility.AccessibleContextaccessibleContextprivate PainterbackgroundPainterprivate booleancontinuousLayoutprivate JXMultiSplitPane.DividerPainterdividerPainterprivate MultiSplitLayout.DividerdragDividerprivate intdragMaxprivate intdragMinprivate intdragOffsetXprivate intdragOffsetYprivate booleandragUnderwayprivate java.awt.RectangleinitialDividerBoundsprivate booleanoldFloatingDividersprivate booleanpaintBorderInsets-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description JXMultiSplitPane()Creates a MultiSplitPane with it's LayoutManager set to to an empty MultiSplitLayout.JXMultiSplitPane(MultiSplitLayout layout)Creates a MultiSplitPane.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MultiSplitLayout.DivideractiveDivider()Returns the Divider that's currently being moved, typically because the user is dragging it, or null.private voidcancelDrag()private voidclearDragState()private voidfinishDrag(int x, int y)javax.accessibility.AccessibleContextgetAccessibleContext()PaintergetBackgroundPainter()Returns the current background painter.JXMultiSplitPane.DividerPaintergetDividerPainter()The DividerPainter that's used to paint Dividers on this MultiSplitPane.intgetDividerSize()A convenience method that returns the MultiSplitLayout dividerSize property.protected java.awt.DimensiongetMaxNodeSize(MultiSplitLayout msl, MultiSplitLayout.Node n)Set the maximum node size.protected java.awt.DimensiongetMinNodeSize(MultiSplitLayout msl, MultiSplitLayout.Node n)Set the minimum node size.MultiSplitLayoutgetMultiSplitLayout()A convenience method that returns the layout manager cast to MutliSplitLayout.booleanisContinuousLayout()Returns true if dragging a divider only updates the layout when the drag gesture ends (typically, when the mouse button is released).booleanisPaintBorderInsets()Determines whether this component paints its background paint underneath the border.protected voidpaintChildren(java.awt.Graphics g)Uses the DividerPainter (if any) to paint each Divider that overlaps the clip Rectangle.protected voidpaintComponent(java.awt.Graphics g)Calls the UI delegate's paint method, if the UI delegate is non-null.private voidrepaintDragLimits()voidsetBackgroundPainter(Painter p)Specifies a Painter to use to paint the background of this JXPanel.voidsetContinuousLayout(boolean continuousLayout)Sets the value of thecontinuousLayoutproperty.voidsetDividerPainter(JXMultiSplitPane.DividerPainter dividerPainter)Sets the DividerPainter that's used to paint Dividers on this MultiSplitPane.voidsetDividerSize(int dividerSize)A convenience method that sets the MultiSplitLayout dividerSize property.voidsetModel(MultiSplitLayout.Node model)A convenience method that sets the MultiSplitLayout model.voidsetPaintBorderInsets(boolean paintBorderInsets)private voidstartDrag(int mx, int my)private voidupdateCursor(int x, int y, boolean show)private voidupdateDrag(int mx, int my)-
Methods inherited from class javax.swing.JComponent
addAncestorListener, 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, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, 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, update
-
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, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
accessibleContext
private javax.accessibility.AccessibleContext accessibleContext
-
continuousLayout
private boolean continuousLayout
-
dividerPainter
private JXMultiSplitPane.DividerPainter dividerPainter
-
backgroundPainter
private Painter backgroundPainter
-
paintBorderInsets
private boolean paintBorderInsets
-
dragUnderway
private boolean dragUnderway
-
dragDivider
private MultiSplitLayout.Divider dragDivider
-
initialDividerBounds
private java.awt.Rectangle initialDividerBounds
-
oldFloatingDividers
private boolean oldFloatingDividers
-
dragOffsetX
private int dragOffsetX
-
dragOffsetY
private int dragOffsetY
-
dragMin
private int dragMin
-
dragMax
private int dragMax
-
-
Constructor Detail
-
JXMultiSplitPane
public JXMultiSplitPane()
Creates a MultiSplitPane with it's LayoutManager set to to an empty MultiSplitLayout.
-
JXMultiSplitPane
public JXMultiSplitPane(MultiSplitLayout layout)
Creates a MultiSplitPane.- Parameters:
layout- the new split pane's layout
-
-
Method Detail
-
getMultiSplitLayout
public final MultiSplitLayout getMultiSplitLayout()
A convenience method that returns the layout manager cast to MutliSplitLayout.- Returns:
- this MultiSplitPane's layout manager
- See Also:
Container.getLayout(),setModel(org.jdesktop.swingx.MultiSplitLayout.Node)
-
setModel
public final void setModel(MultiSplitLayout.Node model)
A convenience method that sets the MultiSplitLayout model. Equivalent togetMultiSplitLayout.setModel(model)- Parameters:
model- the root of the MultiSplitLayout model- See Also:
getMultiSplitLayout(),MultiSplitLayout.setModel(org.jdesktop.swingx.MultiSplitLayout.Node)
-
setDividerSize
public final void setDividerSize(int dividerSize)
A convenience method that sets the MultiSplitLayout dividerSize property. Equivalent togetMultiSplitLayout().setDividerSize(newDividerSize).- Parameters:
dividerSize- the value of the dividerSize property- See Also:
getMultiSplitLayout(),MultiSplitLayout.setDividerSize(int)
-
getDividerSize
public final int getDividerSize()
A convenience method that returns the MultiSplitLayout dividerSize property. Equivalent togetMultiSplitLayout().getDividerSize().
-
setContinuousLayout
public void setContinuousLayout(boolean continuousLayout)
Sets the value of thecontinuousLayoutproperty. If true, then the layout is revalidated continuously while a divider is being moved. The default value of this property is true.- Parameters:
continuousLayout- value of the continuousLayout property- See Also:
isContinuousLayout()
-
isContinuousLayout
public boolean isContinuousLayout()
Returns true if dragging a divider only updates the layout when the drag gesture ends (typically, when the mouse button is released).- Returns:
- the value of the
continuousLayoutproperty - See Also:
setContinuousLayout(boolean)
-
activeDivider
public MultiSplitLayout.Divider activeDivider()
Returns the Divider that's currently being moved, typically because the user is dragging it, or null.- Returns:
- the Divider that's being moved or null.
-
getDividerPainter
public JXMultiSplitPane.DividerPainter getDividerPainter()
The DividerPainter that's used to paint Dividers on this MultiSplitPane. This property may be null.- Returns:
- the value of the dividerPainter Property
- See Also:
setDividerPainter(org.jdesktop.swingx.JXMultiSplitPane.DividerPainter)
-
setDividerPainter
public void setDividerPainter(JXMultiSplitPane.DividerPainter dividerPainter)
Sets the DividerPainter that's used to paint Dividers on this MultiSplitPane. The default DividerPainter only draws the activeDivider (if there is one) and then, only if continuousLayout is false. The value of this property is used by the paintChildren method: Dividers are painted after the MultiSplitPane's children have been rendered so that the activeDivider can appear "on top of" the children.- Parameters:
dividerPainter- the value of the dividerPainter property, can be null- See Also:
paintChildren(java.awt.Graphics),activeDivider()
-
paintComponent
protected void paintComponent(java.awt.Graphics g)
Calls the UI delegate's paint method, if the UI delegate is non-null. We pass the delegate a copy of theGraphicsobject to protect the rest of the paint code from irrevocable changes (for example,Graphics.translate).If you override this in a subclass you should not make permanent changes to the passed in
Graphics. For example, you should not alter the clipRectangleor modify the transform. If you need to do these operations you may find it easier to create a newGraphicsfrom the passed inGraphicsand manipulate it. Further, if you do not invoker super's implementation you must honor the opaque property, that is if this component is opaque, you must completely fill in the background in a non-opaque color. If you do not honor the opaque property you will likely see visual artifacts.The passed in
Graphicsobject might have a transform other than the identify transform installed on it. In this case, you might get unexpected results if you cumulatively apply another transform.- Overrides:
paintComponentin classjavax.swing.JComponent- Parameters:
g- theGraphicsobject to protect- See Also:
JComponent.paint(Graphics),ComponentUI
-
setBackgroundPainter
public void setBackgroundPainter(Painter p)
Specifies a Painter to use to paint the background of this JXPanel. Ifpis not null, then setOpaque(false) will be called as a side effect. A component should not be opaque if painters are being used, because Painters may paint transparent pixels or not paint certain pixels, such as around the border insets.- Specified by:
setBackgroundPainterin interfaceBackgroundPaintable- Parameters:
p- the new background painter; may benull
-
getBackgroundPainter
public Painter getBackgroundPainter()
Description copied from interface:BackgroundPaintableReturns the current background painter.- Specified by:
getBackgroundPainterin interfaceBackgroundPaintable- Returns:
- the current painter
- See Also:
BackgroundPaintable.setBackgroundPainter(Painter),BackgroundPaintable.isPaintBorderInsets()
-
isPaintBorderInsets
public boolean isPaintBorderInsets()
Determines whether this component paints its background paint underneath the border.- Specified by:
isPaintBorderInsetsin interfaceBackgroundPaintable- Returns:
trueto paint under the border;falseotherwise
-
setPaintBorderInsets
public void setPaintBorderInsets(boolean paintBorderInsets)
- Specified by:
setPaintBorderInsetsin interfaceBackgroundPaintable
-
paintChildren
protected void paintChildren(java.awt.Graphics g)
Uses the DividerPainter (if any) to paint each Divider that overlaps the clip Rectangle. This is done after the call tosuper.paintChildren()so that Dividers can be rendered "on top of" the children.- Overrides:
paintChildrenin classjavax.swing.JComponent
-
startDrag
private void startDrag(int mx, int my)
-
getMaxNodeSize
protected java.awt.Dimension getMaxNodeSize(MultiSplitLayout msl, MultiSplitLayout.Node n)
Set the maximum node size. This method can be overridden to limit the size of a node during a drag operation on a divider. When implementing this method in a subclass the node instance should be checked, for example:class MyMultiSplitPane extends JXMultiSplitPane { protected Dimension getMaxNodeSize( MultiSplitLayout msl, Node n ) { if (( n instanceof Leaf ) && ((Leaf)n).getName().equals( "top" )) return msl.maximumNodeSize( n ); return null; } }- Parameters:
msl- the MultiSplitLayout used by this panen- the node being resized- Returns:
- the maximum size or null (by default) to ignore the maximum size.
-
getMinNodeSize
protected java.awt.Dimension getMinNodeSize(MultiSplitLayout msl, MultiSplitLayout.Node n)
Set the minimum node size. This method can be overridden to limit the size of a node during a drag operation on a divider.- Parameters:
msl- the MultiSplitLayout used by this panen- the node being resized- Returns:
- the maximum size or null (by default) to ignore the maximum size.
-
repaintDragLimits
private void repaintDragLimits()
-
updateDrag
private void updateDrag(int mx, int my)
-
clearDragState
private void clearDragState()
-
finishDrag
private void finishDrag(int x, int y)
-
cancelDrag
private void cancelDrag()
-
updateCursor
private void updateCursor(int x, int y, boolean show)
-
getAccessibleContext
public javax.accessibility.AccessibleContext getAccessibleContext()
- Specified by:
getAccessibleContextin interfacejavax.accessibility.Accessible- Overrides:
getAccessibleContextin classjavax.swing.JPanel
-
-