public class JideScrollPane extends javax.swing.JScrollPane implements JideScrollPaneConstants
JideScrollPane
is an enhanced version of JScrollPane
. In JScrollPane
, you can
have rowHeader and columnHeader. However you can't have rowFooter and columnFooter. However rowFooter and
columnFooter are very useful in table. For example they can be used to display "total" or "summary" type of
information.
Several methods related to rowFooter and columnFooter are added such as setRowFooter(javax.swing.JViewport)
,
and setColumnFooter(javax.swing.JViewport)
which will set the viewport to rowFooter and columnFooter area
respectively. The usage of those methods are exactly the same as JScrollPane.setRowHeader(javax.swing.JViewport)
.
To fully leverage the power of JideScrollPane, we also create a class called TableScrollPane
which is
part of JIDE Grids package. It will allow you to easily create table with row header, row footer and column footer.
JideScrollPane
also provides support for scrollbar corners. You can set them using setScrollBarCorner(String,java.awt.Component)
. Available key for scroll bar corner is defined at JideScrollPaneConstants
which can be access from JideScrollPane
.
javax.swing.JScrollPane.AccessibleJScrollPane, javax.swing.JScrollPane.ScrollBar
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
protected javax.swing.JViewport |
_columnFooter
The column footer child.
|
protected java.awt.Component |
_hLeft
The component to the left of horizontal scroll bar.
|
protected java.awt.Component |
_hRight
The component to the right of horizontal scroll bar.
|
protected javax.swing.JViewport |
_rowFooter
The row footer child.
|
protected java.awt.Component |
_vBottom
The component to the bottom of vertical scroll bar.
|
protected java.awt.Component |
_vTop
The component to the top of vertical scroll bar.
|
static java.lang.String |
PROPERTY_COLUMN_FOOTERS_HEIGHT_UNIFIED |
static java.lang.String |
PROPERTY_COLUMN_HEADERS_HEIGHT_UNIFIED |
static java.lang.String |
PROPERTY_HORIZONTAL_SCROLL_BAR_COVERS_WHOLE_WIDTH |
static java.lang.String |
PROPERTY_VERTICAL_SCROLL_BAR_COVERS_WHOLE_HEIGHT |
columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport
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
COLUMN_FOOTER, HORIZONTAL_LEADING, HORIZONTAL_LEFT, HORIZONTAL_RIGHT, HORIZONTAL_TRAILING, ROW_FOOTER, VERTICAL_BOTTOM, VERTICAL_TOP
COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT
Constructor and Description |
---|
JideScrollPane()
Creates an empty (no viewport view)
JideScrollPane where both horizontal and vertical scrollbars
appear when needed. |
JideScrollPane(java.awt.Component view)
Creates a
JideScrollPane that displays the contents of the specified component, where both
horizontal and vertical scrollbars appear whenever the component's contents are larger than the view. |
JideScrollPane(java.awt.Component view,
int vsbPolicy,
int hsbPolicy)
Creates a
JideScrollPane that displays the view component in a viewport whose view position can be
controlled with a pair of scrollbars. |
JideScrollPane(int vsbPolicy,
int hsbPolicy)
Creates an empty (no viewport view)
JideScrollPane with specified scrollbar policies. |
Modifier and Type | Method and Description |
---|---|
javax.swing.JViewport |
getColumnFooter()
Returns the column footer.
|
javax.swing.JViewport |
getRowFooter()
Returns the row footer.
|
java.awt.Component |
getScrollBarCorner(java.lang.String key)
Returns the component at the specified scroll bar corner.
|
boolean |
isColumnFootersHeightUnified()
If true, the bottom-right, bottom-left corners the column footer will have the same height.
|
boolean |
isColumnHeadersHeightUnified()
If true, the top-right, top-left corners the column header will have the same height.
|
boolean |
isHorizontalScrollBarCoversWholeWidth() |
boolean |
isKeepCornerVisible()
Get the flag indicating if JideScrollPane should keep the corner visible when it has corner components defined even
when the scroll bar is not visible.
|
boolean |
isVerticalScrollBarCoversWholeHeight() |
void |
setColumnFooter(javax.swing.JViewport columnFooter)
Removes the old columnFooter, if it exists.
|
void |
setColumnFootersHeightUnified(boolean columnFootersHeightUnified)
Sets the flag if the bottom-right, bottom-left corner and the column footer will have the same height or
different heights.
|
void |
setColumnFooterView(java.awt.Component view)
Creates a column-footer viewport if necessary, sets its view, and then adds the column-footer viewport to the
scrollpane.
|
void |
setColumnHeader(javax.swing.JViewport columnHeader)
Overrides to make column header viewport synchronizing with the main viewport.
|
void |
setColumnHeadersHeightUnified(boolean columnHeadersHeightUnified)
Sets the flag if the top-right, top-left corner and the column header will have the same height or different
heights.
|
void |
setHorizontalScrollBarCoversWholeWidth(boolean horizontalScrollBarCoversWholeWidth) |
void |
setKeepCornerVisible(boolean keepCornerVisible)
Set the flag indicating if JideScrollPane should keep the corner visible when it has corner components defined even
when the scroll bar is not visible.
|
void |
setRowFooter(javax.swing.JViewport rowFooter)
Removes the old rowFooter, if it exists.
|
void |
setRowFooterView(java.awt.Component view)
Creates a row-footer viewport if necessary, sets its view and then adds the row-footer viewport to the
scrollpane.
|
void |
setRowHeader(javax.swing.JViewport rowHeader)
Override setRowHeader method in JScrollPane and synchronize the view with the main viewport.
|
void |
setScrollBarCorner(java.lang.String key,
java.awt.Component corner)
Adds a child that will appear in one of the scroll bars corners.
|
void |
setVerticalScrollBarCoversWholeHeight(boolean verticalScrollBarCoversWholeHeight) |
void |
updateUI() |
createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, 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, getMaximumSize, getMinimumSize, 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, 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, setEnabled, 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, 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, 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, getPeer, 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, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
protected javax.swing.JViewport _rowFooter
null
.setRowFooter(javax.swing.JViewport)
protected javax.swing.JViewport _columnFooter
null
.setColumnFooter(javax.swing.JViewport)
protected java.awt.Component _hLeft
protected java.awt.Component _hRight
protected java.awt.Component _vTop
protected java.awt.Component _vBottom
public static final java.lang.String PROPERTY_HORIZONTAL_SCROLL_BAR_COVERS_WHOLE_WIDTH
public static final java.lang.String PROPERTY_VERTICAL_SCROLL_BAR_COVERS_WHOLE_HEIGHT
public static final java.lang.String PROPERTY_COLUMN_HEADERS_HEIGHT_UNIFIED
public static final java.lang.String PROPERTY_COLUMN_FOOTERS_HEIGHT_UNIFIED
public JideScrollPane(java.awt.Component view, int vsbPolicy, int hsbPolicy)
JideScrollPane
that displays the view component in a viewport whose view position can be
controlled with a pair of scrollbars. The scrollbar policies specify when the scrollbars are displayed, For
example, if vsbPolicy
is VERTICAL_SCROLLBAR_AS_NEEDED
then the vertical scrollbar only
appears if the view doesn't fit vertically. The available policy settings are listed at JScrollPane.setVerticalScrollBarPolicy(int)
and JScrollPane.setHorizontalScrollBarPolicy(int)
.view
- the component to display in the scrollpanes viewportvsbPolicy
- an integer that specifies the vertical scrollbar policyhsbPolicy
- an integer that specifies the horizontal scrollbar policyJScrollPane.setViewportView(java.awt.Component)
public JideScrollPane(java.awt.Component view)
JideScrollPane
that displays the contents of the specified component, where both
horizontal and vertical scrollbars appear whenever the component's contents are larger than the view.view
- the component to display in the scrollpane's viewportJScrollPane.setViewportView(java.awt.Component)
public JideScrollPane(int vsbPolicy, int hsbPolicy)
JideScrollPane
with specified scrollbar policies. The available
policy settings are listed at JScrollPane.setVerticalScrollBarPolicy(int)
and JScrollPane.setHorizontalScrollBarPolicy(int)
.vsbPolicy
- an integer that specifies the vertical scrollbar policyhsbPolicy
- an integer that specifies the horizontal scrollbar policyJScrollPane.setViewportView(java.awt.Component)
public JideScrollPane()
JideScrollPane
where both horizontal and vertical scrollbars
appear when needed.public javax.swing.JViewport getRowFooter()
rowFooter
propertysetRowFooter(javax.swing.JViewport)
public void setRowFooter(javax.swing.JViewport rowFooter)
null
, syncs the y coordinate of
its viewPosition with the viewport (if there is one) and then adds it to the scrollpane.rowFooter
- the new row footer to be used; if null
the old row footer is still removed and the
new rowFooter is set to null
getRowFooter()
,
setRowFooterView(java.awt.Component)
public void setRowHeader(javax.swing.JViewport rowHeader)
setRowHeader
in class javax.swing.JScrollPane
rowHeader
- the new row headerpublic void setRowFooterView(java.awt.Component view)
JScrollPane scrollpane = new JideScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); scrollpane.setRowFooterView(myBigComponentsRowFooter);
view
- the component to display as the row footersetRowFooter(javax.swing.JViewport)
,
JViewport.setView(java.awt.Component)
public javax.swing.JViewport getColumnFooter()
columnFooter
propertysetColumnFooter(javax.swing.JViewport)
public void setColumnFooter(javax.swing.JViewport columnFooter)
null
, sync the x
coordinate of the its viewPosition with the viewport (if there is one) and then add it to the scrollpane.columnFooter
- the new column footer to be used; if null
the old column footer is still removed
and the new columnFooter is set to null
getColumnFooter()
,
setColumnFooterView(java.awt.Component)
public void setColumnHeader(javax.swing.JViewport columnHeader)
setColumnHeader
in class javax.swing.JScrollPane
columnHeader
- the column headerpublic void setColumnFooterView(java.awt.Component view)
JScrollPane scrollpane = new JideScrollPane(); scrollpane.setViewportView(myBigComponentToScroll); scrollpane.setColumnFooterView(myBigComponentsColumnFooter);
view
- the component to display as the column footersetColumnFooter(javax.swing.JViewport)
,
JViewport.setView(java.awt.Component)
public java.awt.Component getScrollBarCorner(java.lang.String key)
key
value specifying the corner is one
of: key
- one of the values as shown abovenull
if key
is invalid: JScrollPane.setCorner(java.lang.String, java.awt.Component)
public void setScrollBarCorner(java.lang.String key, java.awt.Component corner)
JideScrollPaneConstants.HORIZONTAL_LEFT
JideScrollPaneConstants.HORIZONTAL_RIGHT
JideScrollPaneConstants.VERTICAL_TOP
JideScrollPaneConstants.VERTICAL_BOTTOM
JideScrollPaneConstants.HORIZONTAL_LEADING
JideScrollPaneConstants.HORIZONTAL_TRAILING
PropertyChange
events are generated
with the property name set to the corner key.key
- identifies which corner the component will appear incorner
- one of the following components: java.lang.IllegalArgumentException
- if corner key is invalidpublic void updateUI()
updateUI
in class javax.swing.JScrollPane
public boolean isVerticalScrollBarCoversWholeHeight()
public void setHorizontalScrollBarCoversWholeWidth(boolean horizontalScrollBarCoversWholeWidth)
public boolean isHorizontalScrollBarCoversWholeWidth()
public void setVerticalScrollBarCoversWholeHeight(boolean verticalScrollBarCoversWholeHeight)
public boolean isColumnHeadersHeightUnified()
public void setColumnHeadersHeightUnified(boolean columnHeadersHeightUnified)
columnHeadersHeightUnified
- true or false.public boolean isColumnFootersHeightUnified()
public void setColumnFootersHeightUnified(boolean columnFootersHeightUnified)
columnFootersHeightUnified
- true or false.public boolean isKeepCornerVisible()
HORIZONTAL_SCROLLBAR_AS_NEEDED
or
VERTICAL_SCROLLBAR_AS_NEEDED
The default value of this flag is false.public void setKeepCornerVisible(boolean keepCornerVisible)
keepCornerVisible
- the flag