Adjustable, ImageObserver, MenuContainer, Serializable, Accessible
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.
| Modifier and Type | Class | Description | 
|---|---|---|
| protected class  | JScrollBar.AccessibleJScrollBar | This class implements accessibility support for the  JScrollBarclass. | 
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
| Modifier and Type | Field | Description | 
|---|---|---|
| protected int | blockIncrement | Stores the amount by which the value of the scrollbar is changed upon a block (usually "page") up/down request. | 
| protected BoundedRangeModel | model | The model that represents the scrollbar's minimum, maximum, extent (aka "visibleAmount") and current value. | 
| protected int | orientation | Orientation of this scrollBar. | 
| protected int | unitIncrement | Stores the amount by which the value of the scrollbar is changed upon a unit up/down request. | 
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
HORIZONTAL, NO_ORIENTATION, VERTICAL
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
| 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. | 
| 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. | 
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
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
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
protected BoundedRangeModel model
protected int orientation
protected int unitIncrement
protected int blockIncrement
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.
orientation - an orientation of the JScrollBar
value - an int giving the current valueextent - an int giving the amount by which the value can "jump"min - an int giving the minimum valuemax - an int giving the maximum valueIllegalArgumentException - if orientation is not one of VERTICAL, HORIZONTALpublic JScrollBar(int orientation)
minimum = 0 maximum = 100 value = 0 extent = 10
orientation - an orientation of the JScrollBar
public JScrollBar()
minimum = 0 maximum = 100 value = 0 extent = 10
@BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel") public void setUI(ScrollBarUI ui)
ui - the ScrollBarUI L&F objectpublic ScrollBarUI getUI()
getUI in class JComponent
public void updateUI()
JComponent.updateUI.updateUI in class JComponent
@BeanProperty(bound=false) public String getUIClassID()
getUIClassID in class JComponent
public int getOrientation()
getOrientation in interface Adjustable
@BeanProperty(preferred=true, visualUpdate=true, enumerationValues={"JScrollBar.VERTICAL","JScrollBar.HORIZONTAL"}, description="The scrollbar\'s orientation.") public void setOrientation(int orientation) orientation - an orientation of the JScrollBar
IllegalArgumentException - if orientation is not one of VERTICAL, HORIZONTALpublic BoundedRangeModel getModel()
@BeanProperty(expert=true, description="The scrollbar\'s BoundedRangeModel.") public void setModel(BoundedRangeModel newModel)
newModel - a new modelpublic 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.
direction - is -1 or 1 for up/down respectively@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.
setUnitIncrement in interface Adjustable
unitIncrement - the unit incrementpublic 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.
direction - is -1 or 1 for up/down respectively@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.
setBlockIncrement in interface Adjustable
blockIncrement - the block incrementpublic int getUnitIncrement()
getUnitIncrement in interface Adjustable
public int getBlockIncrement()
getBlockIncrement in interface Adjustable
public int getValue()
getValue in interface Adjustable
@BeanProperty(bound=false, preferred=true, description="The scrollbar\'s current value.") public void setValue(int value)
setValue in interface Adjustable
value - the current value, between minimum and maximum - visibleAmount
public int getVisibleAmount()
getVisibleAmount in interface Adjustable
@BeanProperty(bound=false, preferred=true, description="The amount of the view that is currently visible.") public void setVisibleAmount(int extent)
setVisibleAmount in interface Adjustable
extent - the length of the indicatorpublic int getMinimum()
getMinimum in interface Adjustable
@BeanProperty(bound=false, preferred=true, description="The scrollbar\'s minimum value.") public void setMinimum(int minimum)
setMinimum in interface Adjustable
minimum - the minimum valuepublic int getMaximum()
getMaximum in interface Adjustable
@BeanProperty(bound=false, preferred=true, description="The scrollbar\'s maximum value.") public void setMaximum(int maximum)
setMaximum in interface Adjustable
maximum - the maximum valuepublic boolean getValueIsAdjusting()
@BeanProperty(bound=false, expert=true, description="True if the scrollbar thumb is being dragged.") public void setValueIsAdjusting(boolean b)
b - true if the upcoming changes to the value property are part of a seriespublic void setValues(int newValue, int newExtent, int newMin, int newMax)
minimum ≤ value ≤ value+extent ≤ maximum
newValue - an int giving the current valuenewExtent - an int giving the amount by which the value can "jump"newMin - an int giving the minimum valuenewMax - an int giving the maximum valuepublic 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.
addAdjustmentListener in interface Adjustable
l - the AdjustmentLister to addpublic void removeAdjustmentListener(AdjustmentListener l)
removeAdjustmentListener in interface Adjustable
l - the AdjustmentLister to remove@BeanProperty(bound=false) public AdjustmentListener[] getAdjustmentListeners()
AdjustmentListeners added to this JScrollBar with addAdjustmentListener().AdjustmentListeners added or an empty array if no listeners have been addedprotected void fireAdjustmentValueChanged(int id, int type, int value)
id - an integer indicating the type of event.type - an integer indicating the adjustment type.value - the current value of the adjustmentpublic Dimension getMinimumSize()
getMinimumSize in class JComponent
minimumSize propertypublic Dimension getMaximumSize()
getMaximumSize in class JComponent
maximumSize propertypublic void setEnabled(boolean x)
setEnabled in class JComponent
x - a boolean value, where true enables the component and false disables itprotected String paramString()
null.paramString in class JComponent
@BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
getAccessibleContext in interface Accessible
getAccessibleContext in class Component
    © 1993, 2023, 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/21/docs/api/java.desktop/javax/swing/JScrollBar.html