public class JSplitPane extends JComponentimplements Accessible
JSplitPane is used to divide two (and only two)
Components. The two
Components are graphically divided based on the look and feel implementation, and the two
Components can then be interactively resized by the user. Information on using
JSplitPane is in
How to Use Split Panes in
The Java Tutorial.
The two Components in a split pane can be aligned left to right using JSplitPane.HORIZONTAL_SPLIT, or top to bottom using JSplitPane.VERTICAL_SPLIT. The preferred way to change the size of the Components is to invoke setDividerLocation where location is either the new x or y position, depending on the orientation of the JSplitPane.
To resize the Components to their preferred sizes invoke resetToPreferredSizes.
When the user is resizing the Components the minimum size of the Components is used to determine the maximum/minimum position the Components can be set to. If the minimum size of the two components is greater than the size of the split pane the divider will not allow you to resize it. To alter the minimum size of a JComponent, see JComponent.
When the user resizes the split pane the new space is distributed between the two components based on the resizeWeight property. A value of 0, the default, indicates the right/bottom component gets all the space, where as a value of 1 indicates the left/top component gets all the space.
Warning: Swing is not thread safe. For more information see Swing's Threading Policy.
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans™ has been added to the java.beans package. Please see XMLEncoder.
| Modifier and Type | Class and Description |
|---|---|
protected class |
JSplitPane
This class implements accessibility support for the
JSplitPane class.
|
JComponent.AccessibleJComponent Container.AccessibleAWTContainer Component.AccessibleAWTComponent , Component.BaselineResizeBehavior , Component.BltBufferStrategy , Component.FlipBufferStrategy | Modifier and Type | Field and Description |
|---|---|
static String |
BOTTOM
Used to add a
Component below the other
Component.
|
static String |
CONTINUOUS_LAYOUT_PROPERTY
Bound property name for continuousLayout.
|
protected boolean |
continuousLayout
Whether or not the views are continuously redisplayed while resizing.
|
static String |
DIVIDER
Used to add a
Component that will represent the divider.
|
static String |
DIVIDER_LOCATION_PROPERTY
Bound property for the dividerLocation.
|
static String |
DIVIDER_SIZE_PROPERTY
Bound property name for border.
|
protected int |
dividerSize
Size of the divider.
|
static int |
HORIZONTAL_SPLIT
Horizontal split indicates the
Components are split along the x axis.
|
static String |
LAST_DIVIDER_LOCATION_PROPERTY
Bound property for lastLocation.
|
protected int |
lastDividerLocation
Previous location of the split pane.
|
static String |
LEFT
Used to add a
Component to the left of the other
Component.
|
protected Component |
leftComponent
The left or top component.
|
static String |
ONE_TOUCH_EXPANDABLE_PROPERTY
Bound property for oneTouchExpandable.
|
protected boolean |
oneTouchExpandable
Is a little widget provided to quickly expand/collapse the split pane?
|
protected int |
orientation
How the views are split.
|
static String |
ORIENTATION_PROPERTY
Bound property name for orientation (horizontal or vertical).
|
static String |
RESIZE_WEIGHT_PROPERTY
Bound property for weight.
|
static String |
RIGHT
Used to add a
Component to the right of the other
Component.
|
protected Component |
rightComponent
The right or bottom component.
|
static String |
TOP
Used to add a
Component above the other
Component.
|
static int |
VERTICAL_SPLIT
Vertical split indicates the
Components are split along the y axis.
|
listenerList, 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_ALIGNMENTABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH| Constructor and Description |
|---|
JSplitPane()
Creates a new
JSplitPane configured to arrange the child components side-by-side horizontally, using two buttons for the components.
|
JSplitPane(int newOrientation)
Creates a new
JSplitPane configured with the specified orientation.
|
JSplitPane(int newOrientation, boolean newContinuousLayout)
Creates a new
JSplitPane with the specified orientation and redrawing style.
|
JSplitPane(int newOrientation, boolean newContinuousLayout, Component
Creates a new
JSplitPane with the specified orientation and redrawing style, and with the specified components.
|
JSplitPane(int newOrientation, Component
Creates a new
JSplitPane with the specified orientation and the specified components.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
addImpl(Component
Adds the specified component to this split pane.
|
AccessibleContext |
getAccessibleContext()
Gets the AccessibleContext associated with this JSplitPane.
|
Component |
getBottomComponent()
Returns the component below, or to the right of the divider.
|
int |
getDividerLocation()
Returns the last value passed to
setDividerLocation.
|
int |
getDividerSize()
Returns the size of the divider.
|
int |
getLastDividerLocation()
Returns the last location the divider was at.
|
Component |
getLeftComponent()
Returns the component to the left (or above) the divider.
|
int |
getMaximumDividerLocation()
Returns the maximum location of the divider from the look and feel implementation.
|
int |
getMinimumDividerLocation()
Returns the minimum location of the divider from the look and feel implementation.
|
int |
getOrientation()
Returns the orientation.
|
double |
getResizeWeight()
Returns the number that determines how extra space is distributed.
|
Component |
getRightComponent()
Returns the component to the right (or below) the divider.
|
Component |
getTopComponent()
Returns the component above, or to the left of the divider.
|
SplitPaneUI |
getUI()
Returns the
SplitPaneUI that is providing the current look and feel.
|
String |
getUIClassID()
Returns the name of the L&F class that renders this component.
|
boolean |
isContinuousLayout()
Gets the
continuousLayout property.
|
boolean |
isOneTouchExpandable()
Gets the
oneTouchExpandable property.
|
boolean |
isValidateRoot()
Returns true, so that calls to
revalidate on any descendant of this
JSplitPane will cause a request to be queued that will validate the
JSplitPane and all its descendants.
|
protected void |
paintChildren(Graphics
Subclassed to message the UI with
finishedPaintingChildren after super has been messaged, as well as painting the border.
|
protected String |
paramString()
Returns a string representation of this
JSplitPane.
|
void |
remove(Component
Removes the child component,
component from the pane.
|
void |
remove(int index)
Removes the
Component at the specified index.
|
void |
removeAll()
Removes all the child components from the split pane.
|
void |
resetToPreferredSizes()
Lays out the
JSplitPane layout based on the preferred size of the children components.
|
void |
setBottomComponent(Component
Sets the component below, or to the right of the divider.
|
void |
setContinuousLayout(boolean newContinuousLayout)
Sets the value of the
continuousLayout property, which must be
true for the child components to be continuously redisplayed and laid out during user intervention.
|
void |
setDividerLocation(double proportionalLocation)
Sets the divider location as a percentage of the
JSplitPane's size.
|
void |
setDividerLocation(int location)
Sets the location of the divider.
|
void |
setDividerSize(int newSize)
Sets the size of the divider.
|
void |
setLastDividerLocation(int newLastLocation)
Sets the last location the divider was at to
newLastLocation.
|
void |
setLeftComponent(Component
Sets the component to the left (or above) the divider.
|
void |
setOneTouchExpandable(boolean newValue)
Sets the value of the
oneTouchExpandable property, which must be
true for the
JSplitPane to provide a UI widget on the divider to quickly expand/collapse the divider.
|
void |
setOrientation(int orientation)
Sets the orientation, or how the splitter is divided.
|
void |
setResizeWeight(double value)
Specifies how to distribute extra space when the size of the split pane changes.
|
void |
setRightComponent(Component
Sets the component to the right (or below) the divider.
|
void |
setTopComponent(Component
Sets the component above, or to the left of the divider.
|
void |
setUI(SplitPaneUI
Sets the L&F object that renders this component.
|
void |
updateUI()
Notification from the
UIManager that the L&F has changed.
|
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, paint, paintBorder, 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, updateadd, 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, 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, transferFocusUpCyclepublic static final int VERTICAL_SPLIT
Components are split along the y axis. For example the two
Components will be split one on top of the other.
public static final int HORIZONTAL_SPLIT
Components are split along the x axis. For example the two
Components will be split one to the left of the other.
public static final StringLEFT
Component to the left of the other
Component.
public static final StringRIGHT
Component to the right of the other
Component.
public static final StringTOP
Component above the other
Component.
public static final StringBOTTOM
Component below the other
Component.
public static final StringDIVIDER
Component that will represent the divider.
public static final StringORIENTATION_PROPERTY
public static final StringCONTINUOUS_LAYOUT_PROPERTY
public static final StringDIVIDER_SIZE_PROPERTY
public static final StringONE_TOUCH_EXPANDABLE_PROPERTY
public static final StringLAST_DIVIDER_LOCATION_PROPERTY
public static final StringDIVIDER_LOCATION_PROPERTY
public static final StringRESIZE_WEIGHT_PROPERTY
protected int orientation
protected boolean continuousLayout
protected ComponentleftComponent
protected ComponentrightComponent
protected int dividerSize
protected boolean oneTouchExpandable
protected int lastDividerLocation
public JSplitPane()
JSplitPane configured to arrange the child components side-by-side horizontally, using two buttons for the components.
@ConstructorProperties(value="orientation") public JSplitPane(int newOrientation)
JSplitPane configured with the specified orientation.
newOrientation -
JSplitPane.HORIZONTAL_SPLIT or
JSplitPane.VERTICAL_SPLIT
IllegalArgumentException - if
orientation is not one of HORIZONTAL_SPLIT or VERTICAL_SPLIT.
public JSplitPane(int newOrientation,
boolean newContinuousLayout)
JSplitPane with the specified orientation and redrawing style.
newOrientation -
JSplitPane.HORIZONTAL_SPLIT or
JSplitPane.VERTICAL_SPLIT
newContinuousLayout - a boolean, true for the components to redraw continuously as the divider changes position, false to wait until the divider position stops changing to redraw
IllegalArgumentException - if
orientation is not one of HORIZONTAL_SPLIT or VERTICAL_SPLIT
public JSplitPane(int newOrientation,
Component newLeftComponent,
Component newRightComponent)
JSplitPane with the specified orientation and the specified components.
newOrientation -
JSplitPane.HORIZONTAL_SPLIT or
JSplitPane.VERTICAL_SPLIT
newLeftComponent - the
Component that will appear on the left of a horizontally-split pane, or at the top of a vertically-split pane
newRightComponent - the
Component that will appear on the right of a horizontally-split pane, or at the bottom of a vertically-split pane
IllegalArgumentException - if
orientation is not one of: HORIZONTAL_SPLIT or VERTICAL_SPLIT
public JSplitPane(int newOrientation,
boolean newContinuousLayout,
Component newLeftComponent,
Component newRightComponent)
JSplitPane with the specified orientation and redrawing style, and with the specified components.
newOrientation -
JSplitPane.HORIZONTAL_SPLIT or
JSplitPane.VERTICAL_SPLIT
newContinuousLayout - a boolean, true for the components to redraw continuously as the divider changes position, false to wait until the divider position stops changing to redraw
newLeftComponent - the
Component that will appear on the left of a horizontally-split pane, or at the top of a vertically-split pane
newRightComponent - the
Component that will appear on the right of a horizontally-split pane, or at the bottom of a vertically-split pane
IllegalArgumentException - if
orientation is not one of HORIZONTAL_SPLIT or VERTICAL_SPLIT
public void setUI(SplitPaneUIui)
ui - the
SplitPaneUI L&F object
UIDefaults.getUI(javax.swing.JComponent)
public SplitPaneUIgetUI()
SplitPaneUI that is providing the current look and feel.
SplitPaneUI object that renders this component
public void updateUI()
UIManager that the L&F has changed. Replaces the current UI object with the latest version from the
UIManager.
updateUI in class
JComponent
JComponent.updateUI()
public StringgetUIClassID()
getUIClassID in class
JComponent
JComponent.getUIClassID() ,
UIDefaults.getUI(javax.swing.JComponent)
public void setDividerSize(int newSize)
newSize - an integer giving the size of the divider in pixels
public int getDividerSize()
public void setLeftComponent(Componentcomp)
comp - the
Component to display in that position
public ComponentgetLeftComponent()
Component displayed in that position
public void setTopComponent(Componentcomp)
comp - the
Component to display in that position
public ComponentgetTopComponent()
Component displayed in that position
public void setRightComponent(Componentcomp)
comp - the
Component to display in that position
public ComponentgetRightComponent()
Component displayed in that position
public void setBottomComponent(Componentcomp)
comp - the
Component to display in that position
public ComponentgetBottomComponent()
Component displayed in that position
public void setOneTouchExpandable(boolean newValue)
oneTouchExpandable property, which must be
true for the
JSplitPane to provide a UI widget on the divider to quickly expand/collapse the divider. The default value of this property is
false. Some look and feels might not support one-touch expanding; they will ignore this property.
newValue -
true to specify that the split pane should provide a collapse/expand widget
isOneTouchExpandable()
public boolean isOneTouchExpandable()
oneTouchExpandable property.
oneTouchExpandable property
setOneTouchExpandable(boolean)
public void setLastDividerLocation(int newLastLocation)
newLastLocation.
newLastLocation - an integer specifying the last divider location in pixels, from the left (or upper) edge of the pane to the left (or upper) edge of the divider
public int getLastDividerLocation()
public void setOrientation(int orientation)
orientation - an integer specifying the orientation
IllegalArgumentException - if orientation is not one of: HORIZONTAL_SPLIT or VERTICAL_SPLIT.
public int getOrientation()
setOrientation(int)
public void setContinuousLayout(boolean newContinuousLayout)
continuousLayout property, which must be
true for the child components to be continuously redisplayed and laid out during user intervention. The default value of this property is look and feel dependent. Some look and feels might not support continuous layout; they will ignore this property.
newContinuousLayout -
true if the components should continuously be redrawn as the divider changes position
isContinuousLayout()
public boolean isContinuousLayout()
continuousLayout property.
continuousLayout property
setContinuousLayout(boolean)
public void setResizeWeight(double value)
value - as described above
IllegalArgumentException - if
value is < 0 or > 1
public double getResizeWeight()
public void resetToPreferredSizes()
JSplitPane layout based on the preferred size of the children components. This will likely result in changing the divider location.
public void setDividerLocation(double proportionalLocation)
JSplitPane's size.
This method is implemented in terms of setDividerLocation(int). This method immediately changes the size of the split pane based on its current size. If the split pane is not correctly realized and on screen, this method will have no effect (new divider location will become (current size * proportionalLocation) which is 0).
proportionalLocation - a double-precision floating point value that specifies a percentage, from zero (top/left) to 1.0 (bottom/right)
IllegalArgumentException - if the specified location is < 0 or > 1.0
public void setDividerLocation(int location)
setLastDividerLocation.
location - an int specifying a UI-specific value (typically a pixel count)
public int getDividerLocation()
setDividerLocation. The value returned from this method may differ from the actual divider location (if
setDividerLocation was passed a value bigger than the current size).
public int getMinimumDividerLocation()
null
public int getMaximumDividerLocation()
null
public void remove(Componentcomponent)
component from the pane. Resets the
leftComponent or
rightComponent instance variable, as necessary.
remove in class
Container
component - the
Component to remove
Container.add(java.awt.Component) ,
Container.invalidate() ,
Container.validate() ,
Container.remove(int)
public void remove(int index)
Component at the specified index. Updates the
leftComponent and
rightComponent instance variables as necessary, and then messages super.
remove in class
Container
index - an integer specifying the component to remove, where 1 specifies the left/top component and 2 specifies the bottom/right component
Container.add(java.awt.Component) ,
Container.invalidate() ,
Container.validate() ,
Container.getComponentCount()
public void removeAll()
leftComonent and
rightComponent instance variables.
removeAll in class
Container
Container.add(java.awt.Component) ,
Container.remove(int) ,
Container.invalidate()
public boolean isValidateRoot()
revalidate on any descendant of this
JSplitPane will cause a request to be queued that will validate the
JSplitPane and all its descendants.
isValidateRoot in class
JComponent
JComponent.revalidate() ,
Container.isValidateRoot()
protected void addImpl(Componentcomp, Object constraints, int index)
constraints identifies the left/top or right/bottom child component, and a component with that identifier was previously added, it will be removed and then
comp will be added in its place. If
constraints is not one of the known identifiers the layout manager may throw an
IllegalArgumentException.
The possible constraints objects (Strings) are:
constraints object is
null, the component is added in the first available position (left/top if open, else right/bottom).
addImpl in class
Container
comp - the component to add
constraints - an
Object specifying the layout constraints (position) for this component
index - an integer specifying the index in the container's list.
IllegalArgumentException - if the
constraints object does not match an existing component
Container.addImpl(Component, Object, int)
protected void paintChildren(Graphicsg)
finishedPaintingChildren after super has been messaged, as well as painting the border.
paintChildren in class
JComponent
g - the
Graphics context within which to paint
JComponent.paint(java.awt.Graphics) ,
Container.paint(java.awt.Graphics)
protected StringparamString()
JSplitPane. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be
null.
paramString in class
JComponent
JSplitPane.
public AccessibleContextgetAccessibleContext()
getAccessibleContext in interface
Accessible
getAccessibleContext in class
Component