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 JScrollBar class. |
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 AdjustmentListener s 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()
AdjustmentListener
s added to this JScrollBar with addAdjustmentListener().AdjustmentListener
s 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