org.jdesktop.swingx
public class JXTableHeader extends javax.swing.table.JTableHeader implements TableColumnModelExtListener
toggleSortOrder(int)
and resetSortOrder()
JXTable.toggleSortOrder(int)
,
JXTable.resetSortOrder()
,
JXTableHeader.SortGestureRecognizer
,
ColumnHeaderRenderer
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
JXTableHeader.SortGestureRecognizer
Controller for mapping left mouse clicks to sort/-unsort gestures for use
in interested mouse listeners.
|
javax.swing.table.JTableHeader.AccessibleJTableHeader
javax.swing.JComponent.AccessibleJComponent
columnModel, draggedColumn, draggedDistance, reorderingAllowed, resizingAllowed, resizingColumn, table, updateTableInRealTime
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Constructor and Description |
---|
JXTableHeader()
Constructs a
JTableHeader with a default
TableColumnModel . |
JXTableHeader(javax.swing.table.TableColumnModel columnModel)
Constructs a
JTableHeader which is initialized with
cm as the column model. |
Modifier and Type | Method and Description |
---|---|
void |
columnPropertyChange(java.beans.PropertyChangeEvent event)
Implements TableColumnModelExt to allow internal update after
column property changes.
|
protected JXTableHeader.SortGestureRecognizer |
createSortGestureRecognizer()
Creates and returns the default SortGestureRecognizer.
|
javax.swing.table.TableCellRenderer |
getCellRenderer(int columnIndex)
Returns the TableCellRenderer to use for the column with the given index.
|
protected java.lang.String |
getColumnToolTipText(java.awt.event.MouseEvent event)
Returns the column tooltip of the column at the position
of the MouseEvent, if a tooltip is available.
|
javax.swing.table.TableColumn |
getDraggedColumn()
Returns the the dragged column if and only if, a drag is in process and
the column is visible, otherwise returns
null . |
protected int |
getMinimumHeight(int height)
Returns a reasonable minimal preferred height for the header.
|
java.awt.Dimension |
getPreferredSize() |
protected java.awt.Dimension |
getPreferredSize(java.awt.Dimension pref)
Returns a preferred size which is adjusted to the maximum of all
header renderers' height requirement.
|
JXTableHeader.SortGestureRecognizer |
getSortGestureRecognizer()
Returns the SortGestureRecognizer to use.
|
java.lang.String |
getToolTipText(java.awt.event.MouseEvent event) |
JXTable |
getXTable()
Returns the associated table if it is of type JXTable, or null if not.
|
protected void |
installHeaderListener()
Creates and installs header listeners to service the extended functionality.
|
protected boolean |
isColumnEvent(java.beans.PropertyChangeEvent event)
Returns a boolean indicating if a property change event received
from column changes is expected to be already broadcasted by the
core TableColumnModel.
|
protected void |
postUpdateRendererUI(javax.swing.table.TableCellRenderer oldRenderer)
Cleans up after the UIDelegate has updated the default renderer.
|
protected javax.swing.table.TableCellRenderer |
preUpdateRendererUI()
Prepares the default renderer and internal state for updateUI.
|
void |
setDraggedDistance(int distance) |
void |
setSortGestureRecognizer(JXTableHeader.SortGestureRecognizer recognizer)
Sets the SortGestureRecognizer to use for interpreting mouse events
as sort gestures.
|
void |
setTable(javax.swing.JTable table) |
protected void |
uninstallHeaderListener()
Uninstalls header listeners to service the extended functionality.
|
void |
updateUI() |
columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, createDefaultColumnModel, createDefaultRenderer, getAccessibleContext, getColumnModel, getDefaultRenderer, getDraggedDistance, getHeaderRect, getReorderingAllowed, getResizingAllowed, getResizingColumn, getTable, getUI, getUIClassID, getUpdateTableInRealTime, initializeLocalVars, paramString, resizeAndRepaint, setColumnModel, setDefaultRenderer, setDraggedColumn, setReorderingAllowed, setResizingAllowed, setResizingColumn, setUI, setUpdateTableInRealTime
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, 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, 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, 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, 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, hide, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public JXTableHeader()
JTableHeader
with a default
TableColumnModel
.JTableHeader.createDefaultColumnModel()
public JXTableHeader(javax.swing.table.TableColumnModel columnModel)
JTableHeader
which is initialized with
cm
as the column model. If cm
is
null
this method will initialize the table header with a
default TableColumnModel
.columnModel
- the column model for the tableJTableHeader.createDefaultColumnModel()
public void setTable(javax.swing.JTable table)
Sets the associated JTable. Enables enhanced header features if table is of type JXTable.
PENDING: who is responsible for synching the columnModel?
setTable
in class javax.swing.table.JTableHeader
public void columnPropertyChange(java.beans.PropertyChangeEvent event)
This implementation triggers a resizeAndRepaint on every propertyChange which doesn't already fire a "normal" columnModelEvent.
columnPropertyChange
in interface TableColumnModelExtListener
event
- change notification from a contained TableColumn.isColumnEvent(PropertyChangeEvent)
,
TableColumnModelExtListener
protected boolean isColumnEvent(java.beans.PropertyChangeEvent event)
This implementation returns true for notification of width, preferredWidth and visible properties, false otherwise.
event
- the PropertyChangeEvent received as TableColumnModelExtListener.public java.lang.String getToolTipText(java.awt.event.MouseEvent event)
Overridden to respect the column tooltip, if available.
getToolTipText
in class javax.swing.table.JTableHeader
protected java.lang.String getColumnToolTipText(java.awt.event.MouseEvent event)
event
- the mouseEvent representing the mouse location.public JXTable getXTable()
public javax.swing.table.TableCellRenderer getCellRenderer(int columnIndex)
columnIndex
- the index in view coordinates of the columnpublic java.awt.Dimension getPreferredSize()
Overridden to adjust for a reasonable minimum height. Done to fix Issue 334-swingx, which actually is a core issue misbehaving in returning a zero height if the first column has no text.
getPreferredSize
in class javax.swing.JComponent
getPreferredSize(Dimension)
,
getMinimumHeight(int).
protected java.awt.Dimension getPreferredSize(java.awt.Dimension pref)
pref
- an initial preferred sizegetPreferredSize()
,
getMinimumHeight(int)
protected int getMinimumHeight(int height)
This implementation returns the default header renderer's preferred height as measured with a dummy value if the input height is 0, otherwise returns the height unchanged.
height
- the initial height.getPreferredSize()
,
getPreferredSize(Dimension)
public void updateUI()
Overridden to update the default renderer.
updateUI
in class javax.swing.table.JTableHeader
preUpdateRendererUI()
,
postUpdateRendererUI(TableCellRenderer)
,
ColumnHeaderRenderer
protected javax.swing.table.TableCellRenderer preUpdateRendererUI()
ColumnHeaderRenderer
's delegate.updateUI()
protected void postUpdateRendererUI(javax.swing.table.TableCellRenderer oldRenderer)
updateUI
after calling super.updateUI
.
This implementation wraps a UIResource
default renderer into a
ColumnHeaderRenderer
.oldRenderer
- the default renderer before updateUIupdateUI()
public void setDraggedDistance(int distance)
Overridden to scroll the table to keep the dragged column visible.
This side-effect is enabled only if the header's autoscroll property is
true
and the associated table is of type JXTable.
The autoscrolls is disabled by default. With or without - core issue #6503981 has weird effects (for jdk 1.6 - 1.6u3) on a plain JTable as well as a JXTable, fixed in 1.6u4.
setDraggedDistance
in class javax.swing.table.JTableHeader
public javax.swing.table.TableColumn getDraggedColumn()
null
.getDraggedColumn
in class javax.swing.table.JTableHeader
null
JTableHeader.getDraggedDistance()
public JXTableHeader.SortGestureRecognizer getSortGestureRecognizer()
setSortGestureRecognizer(SortGestureRecognizer)
,
createSortGestureRecognizer()
public void setSortGestureRecognizer(JXTableHeader.SortGestureRecognizer recognizer)
This is a bound property.
recognizer
- the SortGestureRecognizer to use for interpreting mouse events
as sort gesturesgetSortGestureRecognizer()
,
createSortGestureRecognizer()
protected JXTableHeader.SortGestureRecognizer createSortGestureRecognizer()
getSortGestureRecognizer()
,
setSortGestureRecognizer(SortGestureRecognizer)
protected void installHeaderListener()
protected void uninstallHeaderListener()