- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible
public class ScrollPane extends Container implements Accessible
- as needed: scrollbars created and shown only when needed by scrollpane
- always: scrollbars created and always shown by the scrollpane
- never: scrollbars never created or shown by the scrollpane
The state of the horizontal and vertical scrollbars is represented
by two ScrollPaneAdjustable objects (one for each
dimension) which implement the Adjustable interface.
The API provides methods to access those objects such that the
attributes on the Adjustable object (such as unitIncrement, value,
etc.) can be manipulated.
Certain adjustable properties (minimum, maximum, blockIncrement, and visibleAmount) are set internally by the scrollpane in accordance with the geometry of the scrollpane and its child and these should not be set by programs using the scrollpane.
If the scrollbar display policy is defined as "never", then the scrollpane can still be programmatically scrolled using the setScrollPosition() method and the scrollpane will move and clip the child's contents appropriately. This policy is useful if the program needs to create and manage its own adjustable controls.
The placement of the scrollbars is controlled by platform-specific properties set by the user outside of the program.
The initial size of this container is set to 100x100, but can be reset using setSize().
Scrolling with the wheel on a wheel-equipped mouse is enabled by default.
This can be disabled using setWheelScrollingEnabled.
Wheel scrolling can be customized by setting the block and
unit increment of the horizontal and vertical Adjustables.
For information on how mouse wheel events are dispatched, see
the class description for MouseWheelEvent.
Insets are used to define any space used by scrollbars and any borders created by the scroll pane. getInsets() can be used to get the current value for the insets. If the value of scrollbarsAlwaysVisible is false, then the value of the insets will change dynamically depending on whether the scrollbars are currently visible or not.
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classScrollPane.AccessibleAWTScrollPaneThis class implements accessibility support for theScrollPaneclass.Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
Fields Modifier and Type Field Description static intSCROLLBARS_ALWAYSSpecifies that horizontal/vertical scrollbars should always be shown regardless of the respective sizes of the scrollpane and child.static intSCROLLBARS_AS_NEEDEDSpecifies that horizontal/vertical scrollbar should be shown only when the size of the child exceeds the size of the scrollpane in the horizontal/vertical dimension.static intSCROLLBARS_NEVERSpecifies that horizontal/vertical scrollbars should never be shown regardless of the respective sizes of the scrollpane and child.Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors Constructor Description ScrollPane()Create a new scrollpane container with a scrollbar display policy of "as needed".ScrollPane(int scrollbarDisplayPolicy)Create a new scrollpane container. -
Method Summary
Modifier and Type Method Description protected voidaddImpl(Component comp, Object constraints, int index)Adds the specified component to this scroll pane container.voidaddNotify()Creates the scroll pane's peer.voiddoLayout()Lays out this container by resizing its child to its preferred size.protected booleaneventTypeEnabled(int type)If wheel scrolling is enabled, we return true for MouseWheelEventsAccessibleContextgetAccessibleContext()Gets the AccessibleContext associated with this ScrollPane.AdjustablegetHAdjustable()Returns theScrollPaneAdjustableobject which represents the state of the horizontal scrollbar.intgetHScrollbarHeight()Returns the height that would be occupied by a horizontal scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.intgetScrollbarDisplayPolicy()Returns the display policy for the scrollbars.PointgetScrollPosition()Returns the current x,y position within the child which is displayed at the 0,0 location of the scrolled panel's view port.AdjustablegetVAdjustable()Returns theScrollPaneAdjustableobject which represents the state of the vertical scrollbar.DimensiongetViewportSize()Returns the current size of the scroll pane's view port.intgetVScrollbarWidth()Returns the width that would be occupied by a vertical scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.booleanisWheelScrollingEnabled()Indicates whether or not scrolling will take place in response to the mouse wheel.voidlayout()Deprecated.As of JDK version 1.1, replaced bydoLayout().StringparamString()Returns a string representing the state of thisScrollPane.voidprintComponents(Graphics g)Prints the component in this scroll pane.protected voidprocessMouseWheelEvent(MouseWheelEvent e)Process mouse wheel events that are delivered to thisScrollPaneby scrolling an appropriate amount.voidsetLayout(LayoutManager mgr)Sets the layout manager for this container.voidsetScrollPosition(int x, int y)Scrolls to the specified position within the child component.voidsetScrollPosition(Point p)Scrolls to the specified position within the child component.voidsetWheelScrollingEnabled(boolean handleWheel)Enables/disables scrolling in response to movement of the mouse wheel.Methods declared in class java.awt.Container
add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, isValidateRoot, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, update, validate, validateTreeMethods declared in class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, revalidate, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setMixingCutoutShape, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
SCROLLBARS_AS_NEEDED
public static final int SCROLLBARS_AS_NEEDEDSpecifies that horizontal/vertical scrollbar should be shown only when the size of the child exceeds the size of the scrollpane in the horizontal/vertical dimension.- See Also:
- Constant Field Values
-
SCROLLBARS_ALWAYS
public static final int SCROLLBARS_ALWAYSSpecifies that horizontal/vertical scrollbars should always be shown regardless of the respective sizes of the scrollpane and child.- See Also:
- Constant Field Values
-
SCROLLBARS_NEVER
public static final int SCROLLBARS_NEVERSpecifies that horizontal/vertical scrollbars should never be shown regardless of the respective sizes of the scrollpane and child.- See Also:
- Constant Field Values
-
-
Constructor Details
-
ScrollPane
Create a new scrollpane container with a scrollbar display policy of "as needed".- Throws:
HeadlessException- if GraphicsEnvironment.isHeadless() returns true- See Also:
GraphicsEnvironment.isHeadless()
-
ScrollPane
@ConstructorProperties("scrollbarDisplayPolicy") public ScrollPane(int scrollbarDisplayPolicy) throws HeadlessExceptionCreate a new scrollpane container.- Parameters:
scrollbarDisplayPolicy- policy for when scrollbars should be shown- Throws:
IllegalArgumentException- if the specified scrollbar display policy is invalidHeadlessException- if GraphicsEnvironment.isHeadless() returns true- See Also:
GraphicsEnvironment.isHeadless()
-
-
Method Details
-
addImpl
Adds the specified component to this scroll pane container. If the scroll pane has an existing child component, that component is removed and the new one is added.- Overrides:
addImplin classContainer- Parameters:
comp- the component to be addedconstraints- not applicableindex- position of child component (must be <= 0)- See Also:
Container.add(Component),Container.add(Component, int),Container.add(Component, java.lang.Object),Container.invalidate(),LayoutManager,LayoutManager2
-
getScrollbarDisplayPolicy
public int getScrollbarDisplayPolicy()Returns the display policy for the scrollbars.- Returns:
- the display policy for the scrollbars
-
getViewportSize
Returns the current size of the scroll pane's view port.- Returns:
- the size of the view port in pixels
-
getHScrollbarHeight
public int getHScrollbarHeight()Returns the height that would be occupied by a horizontal scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.- Returns:
- the height of a horizontal scrollbar in pixels
-
getVScrollbarWidth
public int getVScrollbarWidth()Returns the width that would be occupied by a vertical scrollbar, which is independent of whether it is currently displayed by the scroll pane or not.- Returns:
- the width of a vertical scrollbar in pixels
-
getVAdjustable
Returns theScrollPaneAdjustableobject which represents the state of the vertical scrollbar. The declared return type of this method isAdjustableto maintain backward compatibility.- Returns:
- the vertical scrollbar state
- See Also:
ScrollPaneAdjustable
-
getHAdjustable
Returns theScrollPaneAdjustableobject which represents the state of the horizontal scrollbar. The declared return type of this method isAdjustableto maintain backward compatibility.- Returns:
- the horizontal scrollbar state
- See Also:
ScrollPaneAdjustable
-
setScrollPosition
public void setScrollPosition(int x, int y)Scrolls to the specified position within the child component. A call to this method is only valid if the scroll pane contains a child. Specifying a position outside of the legal scrolling bounds of the child will scroll to the closest legal position. Legal bounds are defined to be the rectangle: x = 0, y = 0, width = (child width - view port width), height = (child height - view port height). This is a convenience method which interfaces with the Adjustable objects which represent the state of the scrollbars.- Parameters:
x- the x position to scroll toy- the y position to scroll to- Throws:
NullPointerException- if the scrollpane does not contain a child
-
setScrollPosition
Scrolls to the specified position within the child component. A call to this method is only valid if the scroll pane contains a child and the specified position is within legal scrolling bounds of the child. Specifying a position outside of the legal scrolling bounds of the child will scroll to the closest legal position. Legal bounds are defined to be the rectangle: x = 0, y = 0, width = (child width - view port width), height = (child height - view port height). This is a convenience method which interfaces with the Adjustable objects which represent the state of the scrollbars.- Parameters:
p- the Point representing the position to scroll to- Throws:
NullPointerException- ifpisnull
-
getScrollPosition
Returns the current x,y position within the child which is displayed at the 0,0 location of the scrolled panel's view port. This is a convenience method which interfaces with the adjustable objects which represent the state of the scrollbars.- Returns:
- the coordinate position for the current scroll position
- Throws:
NullPointerException- if the scrollpane does not contain a child
-
setLayout
Sets the layout manager for this container. This method is overridden to prevent the layout mgr from being set.- Overrides:
setLayoutin classContainer- Parameters:
mgr- the specified layout manager- See Also:
Container.doLayout(),Container.getLayout(),Container.invalidate()
-
doLayout
public void doLayout()Lays out this container by resizing its child to its preferred size. If the new preferred size of the child causes the current scroll position to be invalid, the scroll position is set to the closest valid position.- Overrides:
doLayoutin classContainer- See Also:
Component.validate()
-
layout
Deprecated.As of JDK version 1.1, replaced bydoLayout(). -
printComponents
Prints the component in this scroll pane.- Overrides:
printComponentsin classContainer- Parameters:
g- the specified Graphics window- See Also:
Component.print(java.awt.Graphics),Component.printAll(java.awt.Graphics)
-
addNotify
public void addNotify()Creates the scroll pane's peer.- Overrides:
addNotifyin classContainer- See Also:
Component.isDisplayable(),Container.removeNotify()
-
paramString
Returns a string representing the state of thisScrollPane. 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 benull.- Overrides:
paramStringin classContainer- Returns:
- the parameter string of this scroll pane
-
processMouseWheelEvent
Process mouse wheel events that are delivered to thisScrollPaneby scrolling an appropriate amount.Note that if the event parameter is
nullthe behavior is unspecified and may result in an exception.- Overrides:
processMouseWheelEventin classComponent- Parameters:
e- the mouse wheel event- Since:
- 1.4
- See Also:
MouseWheelEvent,MouseWheelListener,Component.addMouseWheelListener(java.awt.event.MouseWheelListener),Component.enableEvents(long)
-
eventTypeEnabled
protected boolean eventTypeEnabled(int type)If wheel scrolling is enabled, we return true for MouseWheelEvents- Since:
- 1.4
-
setWheelScrollingEnabled
public void setWheelScrollingEnabled(boolean handleWheel)Enables/disables scrolling in response to movement of the mouse wheel. Wheel scrolling is enabled by default.- Parameters:
handleWheel-trueif scrolling should be done automatically for a MouseWheelEvent,falseotherwise.- Since:
- 1.4
- See Also:
isWheelScrollingEnabled(),MouseWheelEvent,MouseWheelListener
-
isWheelScrollingEnabled
public boolean isWheelScrollingEnabled()Indicates whether or not scrolling will take place in response to the mouse wheel. Wheel scrolling is enabled by default.- Returns:
trueif the wheel scrolling enabled; otherwisefalse- Since:
- 1.4
- See Also:
setWheelScrollingEnabled(boolean)
-
getAccessibleContext
Gets the AccessibleContext associated with this ScrollPane. For scroll panes, the AccessibleContext takes the form of an AccessibleAWTScrollPane. A new AccessibleAWTScrollPane instance is created if necessary.- Specified by:
getAccessibleContextin interfaceAccessible- Overrides:
getAccessibleContextin classComponent- Returns:
- an AccessibleAWTScrollPane that serves as the AccessibleContext of this ScrollPane
- Since:
- 1.3
-