Class JScrollBar
- All Implemented Interfaces:
-
Adjustable,ImageObserver,MenuContainer,Serializable,Accessible
- Direct Known Subclasses:
JScrollPane.ScrollBar
@JavaBean(defaultProperty="UI", description="A component that helps determine the visible content range of an area.") public class JScrollBar extends JComponent implements Adjustable, Accessible
Typically, as the position of the knob in the scrollbar changes a corresponding change is made to the position of the JViewport on the underlying view, changing the contents of the JViewport.
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.
- Since:
- 1.2
- See Also:
Nested Class Summary
| Modifier and Type | Class | Description |
|---|---|---|
protected class |
JScrollBar.AccessibleJScrollBar |
This class implements accessibility support for the JScrollBar class. |
Nested classes/interfaces declared in class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces declared in class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Field Summary
| Modifier and Type | Field | Description |
|---|---|---|
protected int |
blockIncrement |
|
protected BoundedRangeModel |
model |
The model that represents the scrollbar's minimum, maximum, extent (aka "visibleAmount") and current value. |
protected int |
orientation |
|
protected int |
unitIncrement |
Fields declared in class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.Adjustable
HORIZONTAL, NO_ORIENTATION, VERTICAL
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor Summary
| Constructor | Description |
|---|---|
JScrollBar() |
Creates a vertical scrollbar with the following initial values: |
JScrollBar |
Creates a scrollbar with the specified orientation and the following initial values: |
JScrollBar |
Creates a scrollbar with the specified orientation, value, extent, minimum, and maximum. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
void |
addAdjustmentListener |
Adds an AdjustmentListener. |
protected void |
fireAdjustmentValueChanged |
Notify listeners that the scrollbar's model has changed. |
AccessibleContext |
getAccessibleContext() |
Gets the AccessibleContext associated with this JScrollBar. |
AdjustmentListener[] |
getAdjustmentListeners() |
Returns an array of all the AdjustmentListeners added to this JScrollBar with addAdjustmentListener(). |
int |
getBlockIncrement() |
For backwards compatibility with java.awt.Scrollbar. |
int |
getBlockIncrement |
Returns the amount to change the scrollbar's value by, given a block (usually "page") up/down request. |
int |
getMaximum() |
The maximum value of the scrollbar is maximum - extent. |
Dimension |
getMaximumSize() |
The scrollbar is flexible along it's scrolling axis and rigid along the other axis. |
int |
getMinimum() |
Returns the minimum value supported by the scrollbar (usually zero). |
Dimension |
getMinimumSize() |
The scrollbar is flexible along it's scrolling axis and rigid along the other axis. |
BoundedRangeModel |
getModel() |
Returns data model that handles the scrollbar's four fundamental properties: minimum, maximum, value, extent. |
int |
getOrientation() |
Returns the component's orientation (horizontal or vertical). |
ScrollBarUI |
getUI() |
Returns the delegate that implements the look and feel for this component. |
String |
getUIClassID() |
Returns the name of the LookAndFeel class for this component. |
int |
getUnitIncrement() |
For backwards compatibility with java.awt.Scrollbar. |
int |
getUnitIncrement |
Returns the amount to change the scrollbar's value by, given a unit up/down request. |
int |
getValue() |
Returns the scrollbar's value. |
boolean |
getValueIsAdjusting() |
True if the scrollbar knob is being dragged. |
int |
getVisibleAmount() |
Returns the scrollbar's extent, aka its "visibleAmount". |
protected String |
paramString() |
Returns a string representation of this JScrollBar. |
void |
removeAdjustmentListener |
Removes an AdjustmentEvent listener. |
void |
setBlockIncrement |
Sets the blockIncrement property. |
void |
setEnabled |
Enables the component so that the knob position can be changed. |
void |
setMaximum |
Sets the model's maximum property. |
void |
setMinimum |
Sets the model's minimum property. |
void |
setModel |
Sets the model that handles the scrollbar's four fundamental properties: minimum, maximum, value, extent. |
void |
setOrientation |
Set the scrollbar's orientation to either VERTICAL or HORIZONTAL. |
void |
setUI |
Sets the L&F object that renders this component. |
void |
setUnitIncrement |
Sets the unitIncrement property. |
void |
setValue |
Sets the scrollbar's value. |
void |
setValueIsAdjusting |
Sets the model's valueIsAdjusting property. |
void |
setValues |
Sets the four BoundedRangeModel properties after forcing the arguments to obey the usual constraints: |
void |
setVisibleAmount |
Set the model's extent property. |
void |
updateUI() |
Overrides JComponent.updateUI. |
Methods declared in class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, 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, 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, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods declared in 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 declared in 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, 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 Details
model
protected BoundedRangeModel model
- See Also:
orientation
protected int orientation
- See Also:
unitIncrement
protected int unitIncrement
- See Also:
blockIncrement
protected int blockIncrement
- See Also:
Constructor Details
JScrollBar
public JScrollBar(int orientation, int value, int extent, int min, int max)
Note: Use setBlockIncrement to set the block increment to a size slightly smaller than the view's extent. That way, when the user jumps the knob to an adjacent position, one or two lines of the original contents remain in view.
- Parameters:
-
orientation- an orientation of theJScrollBar -
value- an int giving the current value -
extent- an int giving the amount by which the value can "jump" -
min- an int giving the minimum value -
max- an int giving the maximum value - Throws:
-
IllegalArgumentException- if orientation is not one of VERTICAL, HORIZONTAL - See Also:
JScrollBar
public JScrollBar(int orientation)
minimum = 0 maximum = 100 value = 0 extent = 10
- Parameters:
-
orientation- an orientation of theJScrollBar
JScrollBar
public JScrollBar()
minimum = 0 maximum = 100 value = 0 extent = 10
Method Details
setUI
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel") public void setUI(ScrollBarUI ui)
- Parameters:
-
ui- theScrollBarUIL&F object - Since:
- 1.4
- See Also:
getUI
public ScrollBarUI getUI()
- Overrides:
-
getUIin classJComponent - Returns:
- the scroll bar's current UI.
- See Also:
updateUI
public void updateUI()
JComponent.updateUI.- Overrides:
-
updateUIin classJComponent - See Also:
getUIClassID
@BeanProperty(bound=false) public String getUIClassID()
- Overrides:
-
getUIClassIDin classJComponent - Returns:
- the string "ScrollBarUI"
- See Also:
getOrientation
public int getOrientation()
- Specified by:
-
getOrientationin interfaceAdjustable - Returns:
- VERTICAL or HORIZONTAL
- See Also:
setOrientation
@BeanProperty(preferred=true, visualUpdate=true, enumerationValues={"JScrollBar.VERTICAL","JScrollBar.HORIZONTAL"}, description="The scrollbar\'s orientation.") public void setOrientation(int orientation) - Parameters:
-
orientation- an orientation of theJScrollBar - Throws:
-
IllegalArgumentException- if orientation is not one of VERTICAL, HORIZONTAL - See Also:
getModel
public BoundedRangeModel getModel()
- Returns:
- the data model
- See Also:
setModel
@BeanProperty(expert=true, description="The scrollbar\'s BoundedRangeModel.") public void setModel(BoundedRangeModel newModel)
- Parameters:
-
newModel- a new model - See Also:
getUnitIncrement
public int getUnitIncrement(int direction)
The JScrollPane component creates scrollbars (by default) that override this method and delegate to the viewports Scrollable view, if it has one. The Scrollable interface provides a more specialized version of this method.
Some look and feel implementations that provide custom scrolling behavior ignore this property.
- Parameters:
-
direction- is -1 or 1 for up/down respectively - Returns:
- the value of the unitIncrement property
- See Also:
setUnitIncrement
@BeanProperty(preferred=true, description="The scrollbar\'s unit increment.") public void setUnitIncrement(int unitIncrement)
Note, that if the argument is equal to the value of Integer.MIN_VALUE, then most look and feel implementations will not provide scrolling to the right/down.
Some look and feel implementations that provide custom scrolling behavior ignore this property.
- Specified by:
-
setUnitIncrementin interfaceAdjustable - Parameters:
-
unitIncrement- the unit increment - See Also:
getBlockIncrement
public int getBlockIncrement(int direction)
The JScrollPane component creates scrollbars (by default) that override this method and delegate to the viewports Scrollable view, if it has one. The Scrollable interface provides a more specialized version of this method.
Some look and feel implementations that provide custom scrolling behavior ignore this property.
- Parameters:
-
direction- is -1 or 1 for up/down respectively - Returns:
- the value of the blockIncrement property
- See Also:
setBlockIncrement
@BeanProperty(preferred=true, description="The scrollbar\'s block increment.") public void setBlockIncrement(int blockIncrement)
Note, that if the argument is equal to the value of Integer.MIN_VALUE, then most look and feel implementations will not provide scrolling to the right/down.
Some look and feel implementations that provide custom scrolling behavior ignore this property.
- Specified by:
-
setBlockIncrementin interfaceAdjustable - Parameters:
-
blockIncrement- the block increment - See Also:
getUnitIncrement
public int getUnitIncrement()
- Specified by:
-
getUnitIncrementin interfaceAdjustable - Returns:
- the unit value increment for the adjustable object
- See Also:
getBlockIncrement
public int getBlockIncrement()
- Specified by:
-
getBlockIncrementin interfaceAdjustable - Returns:
- the block value increment for the adjustable object
- See Also:
getValue
public int getValue()
- Specified by:
-
getValuein interfaceAdjustable - Returns:
- the model's value property
- See Also:
setValue
@BeanProperty(bound=false, preferred=true, description="The scrollbar\'s current value.") public void setValue(int value)
- Specified by:
-
setValuein interfaceAdjustable - Parameters:
-
value- the current value, betweenminimumandmaximum-visibleAmount - See Also:
getVisibleAmount
public int getVisibleAmount()
- Specified by:
-
getVisibleAmountin interfaceAdjustable - Returns:
- the value of the model's extent property
- See Also:
setVisibleAmount
@BeanProperty(bound=false, preferred=true, description="The amount of the view that is currently visible.") public void setVisibleAmount(int extent)
- Specified by:
-
setVisibleAmountin interfaceAdjustable - Parameters:
-
extent- the length of the indicator - See Also:
getMinimum
public int getMinimum()
- Specified by:
-
getMinimumin interfaceAdjustable - Returns:
- the value of the model's minimum property
- See Also:
setMinimum
@BeanProperty(bound=false, preferred=true, description="The scrollbar\'s minimum value.") public void setMinimum(int minimum)
- Specified by:
-
setMinimumin interfaceAdjustable - Parameters:
-
minimum- the minimum value - See Also:
getMaximum
public int getMaximum()
- Specified by:
-
getMaximumin interfaceAdjustable - Returns:
- the value of the model's maximum property
- See Also:
setMaximum
@BeanProperty(bound=false, preferred=true, description="The scrollbar\'s maximum value.") public void setMaximum(int maximum)
- Specified by:
-
setMaximumin interfaceAdjustable - Parameters:
-
maximum- the maximum value - See Also:
getValueIsAdjusting
public boolean getValueIsAdjusting()
- Returns:
- the value of the model's valueIsAdjusting property
- See Also:
setValueIsAdjusting
@BeanProperty(bound=false, expert=true, description="True if the scrollbar thumb is being dragged.") public void setValueIsAdjusting(boolean b)
- Parameters:
-
b-trueif the upcoming changes to the value property are part of a series - See Also:
setValues
public void setValues(int newValue, int newExtent, int newMin, int newMax)
minimum ≤ value ≤ value+extent ≤ maximum
- Parameters:
-
newValue- an int giving the current value -
newExtent- an int giving the amount by which the value can "jump" -
newMin- an int giving the minimum value -
newMax- an int giving the maximum value - See Also:
addAdjustmentListener
public void addAdjustmentListener(AdjustmentListener l)
Note that the AdjustmentEvents type property will always have a placeholder value of AdjustmentEvent.TRACK because all changes to a BoundedRangeModels value are considered equivalent. To change the value of a BoundedRangeModel one just sets its value property, i.e. model.setValue(123). No information about the origin of the change, e.g. it's a block decrement, is provided. We don't try to fabricate the origin of the change here.
- Specified by:
-
addAdjustmentListenerin interfaceAdjustable - Parameters:
-
l- the AdjustmentLister to add - See Also:
removeAdjustmentListener
public void removeAdjustmentListener(AdjustmentListener l)
- Specified by:
-
removeAdjustmentListenerin interfaceAdjustable - Parameters:
-
l- the AdjustmentLister to remove - See Also:
getAdjustmentListeners
@BeanProperty(bound=false) public AdjustmentListener[] getAdjustmentListeners()
AdjustmentListeners added to this JScrollBar with addAdjustmentListener().- Returns:
- all of the
AdjustmentListeners added or an empty array if no listeners have been added - Since:
- 1.4
fireAdjustmentValueChanged
protected void fireAdjustmentValueChanged(int id, int type, int value)
- Parameters:
-
id- an integer indicating the type of event. -
type- an integer indicating the adjustment type. -
value- the current value of the adjustment - See Also:
getMinimumSize
public Dimension getMinimumSize()
- Overrides:
-
getMinimumSizein classJComponent - Returns:
- the value of the
minimumSizeproperty - See Also:
getMaximumSize
public Dimension getMaximumSize()
- Overrides:
-
getMaximumSizein classJComponent - Returns:
- the value of the
maximumSizeproperty - See Also:
setEnabled
public void setEnabled(boolean x)
- Overrides:
-
setEnabledin classJComponent - Parameters:
-
x- a boolean value, where true enables the component and false disables it - See Also:
paramString
protected String paramString()
null.- Overrides:
-
paramStringin classJComponent - Returns:
- a string representation of this JScrollBar.
getAccessibleContext
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
- Specified by:
-
getAccessibleContextin interfaceAccessible - Overrides:
-
getAccessibleContextin classComponent - Returns:
- an AccessibleJScrollBar that serves as the AccessibleContext of this JScrollBar
© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/JScrollBar.html