public class BasicSplitPaneDivider extends Container implements PropertyChangeListener
Divider used by BasicSplitPaneUI. Subclassers may wish to override paint to do something more interesting. The border effect is drawn in BasicSplitPaneUI, so if you don't like that border, reset it there. To conditionally drag from certain areas subclass mousePressed and call super when you wish the dragging to begin.
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 |
BasicSplitPaneDivider.DividerLayout Used to layout a |
protected class |
BasicSplitPaneDivider.DragController Handles the events during a dragging session for a HORIZONTAL_SPLIT oriented split pane. |
protected class |
BasicSplitPaneDivider.MouseHandler MouseHandler is responsible for converting mouse events (released, dragged...) into the appropriate DragController methods. |
protected class |
BasicSplitPaneDivider.VerticalDragController Handles the events during a dragging session for a VERTICAL_SPLIT oriented split pane. |
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
protected static final int ONE_TOUCH_SIZE
Width or height of the divider based on orientation BasicSplitPaneUI adds two to this.
protected static final int ONE_TOUCH_OFFSET
protected BasicSplitPaneDivider.DragController dragger
Handles mouse dragging message to do the actual dragging.
protected BasicSplitPaneUI splitPaneUI
UI this instance was created from.
protected int dividerSize
Size of the divider.
protected Component hiddenDivider
Divider that is used for noncontinuous layout mode.
protected JSplitPane splitPane
JSplitPane the receiver is contained in.
protected BasicSplitPaneDivider.MouseHandler mouseHandler
Handles mouse events from both this class, and the split pane. Mouse events are handled for the splitpane since you want to be able to drag when clicking on the border of the divider, which is not drawn by the divider.
protected int orientation
Orientation of the JSplitPane.
protected JButton leftButton
Button for quickly toggling the left component.
protected JButton rightButton
Button for quickly toggling the right component.
public BasicSplitPaneDivider(BasicSplitPaneUI ui)
Creates an instance of BasicSplitPaneDivider. Registers this instance for mouse events and mouse dragged events.
public void setBasicSplitPaneUI(BasicSplitPaneUI newUI)
Sets the SplitPaneUI that is using the receiver.
public BasicSplitPaneUI getBasicSplitPaneUI()
Returns the SplitPaneUI
the receiver is currently in.
public void setDividerSize(int newSize)
Sets the size of the divider to newSize
. That is the width if the splitpane is HORIZONTAL_SPLIT
, or the height of VERTICAL_SPLIT
.
public int getDividerSize()
Returns the size of the divider, that is the width if the splitpane is HORIZONTAL_SPLIT, or the height of VERTICAL_SPLIT.
public void setBorder(Border border)
Sets the border of this component.
public Border getBorder()
Returns the border of this component or null if no border is currently set.
setBorder(javax.swing.border.Border)
public Insets getInsets()
If a border has been set on this component, returns the border's insets, else calls super.getInsets.
getInsets
in class Container
setBorder(javax.swing.border.Border)
protected void setMouseOver(boolean mouseOver)
Sets whether or not the mouse is currently over the divider.
mouseOver
- whether or not the mouse is currently over the dividerpublic boolean isMouseOver()
Returns whether or not the mouse is currently over the divider
public Dimension getPreferredSize()
Returns dividerSize x dividerSize
getPreferredSize
in class Container
Dimension
that represents the preferred size of this container.Container.getMinimumSize()
, Container.getMaximumSize()
, Container.getLayout()
, LayoutManager.preferredLayoutSize(Container)
, Component.getPreferredSize()
public Dimension getMinimumSize()
Returns dividerSize x dividerSize
getMinimumSize
in class Container
Dimension
that represents the minimum size of this container.Container.getPreferredSize()
, Container.getMaximumSize()
, Container.getLayout()
, LayoutManager.minimumLayoutSize(Container)
, Component.getMinimumSize()
public void propertyChange(PropertyChangeEvent e)
Property change event, presumably from the JSplitPane, will message updateOrientation if necessary.
propertyChange
in interface PropertyChangeListener
e
- A PropertyChangeEvent object describing the event source and the property that has changed.public void paint(Graphics g)
Paints the divider.
paint
in class Container
g
- the specified Graphics windowComponent.update(Graphics)
protected void oneTouchExpandableChanged()
Messaged when the oneTouchExpandable value of the JSplitPane the receiver is contained in changes. Will create the leftButton
and rightButton
if they are null. invalidates the receiver as well.
protected JButton createLeftOneTouchButton()
Creates and return an instance of JButton that can be used to collapse the left component in the split pane.
protected JButton createRightOneTouchButton()
Creates and return an instance of JButton that can be used to collapse the right component in the split pane.
protected void prepareForDragging()
Message to prepare for dragging. This messages the BasicSplitPaneUI with startDragging.
protected void dragDividerTo(int location)
Messages the BasicSplitPaneUI with dragDividerTo that this instance is contained in.
protected void finishDraggingTo(int location)
Messages the BasicSplitPaneUI with finishDraggingTo that this instance is contained in.
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.