Class JXTableHeader
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.table.JTableHeader
-
- org.jdesktop.swingx.JXTableHeader
-
- All Implemented Interfaces:
- java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.event.TableColumnModelListener, TableColumnModelExtListener
public class JXTableHeader extends javax.swing.table.JTableHeader implements TableColumnModelExtListener
TableHeader with extended functionality if associated Table is of type JXTable.Extended user interaction
- Supports column pack (== auto-resize to exactly fit the contents) on double-click in resize region.
- Configurable to resort a column on the second click of a mouseClicked event (feature request #271-swingx)
- Does its best to not sort if the mouse click happens in the resize region.
- Supports horizontal auto-scroll if a column is dragged outside visible rectangle. This feature is enabled if the autoscrolls property is true. The default is false (because of Issue #788-swingx which still isn't fixed for jdk1.6).
Extended functionality
- Listens to TableColumn propertyChanges to update itself accordingly.
- Supports per-column header ToolTips.
- Guarantees reasonable minimal height > 0 for header preferred height.
- See Also:
JXTable.toggleSortOrder(int),JXTable.resetSortOrder(),SortGestureRecognizer, Serialized Form
-
-
Nested Class Summary
-
Field Summary
-
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor and Description JXTableHeader()Constructs aJTableHeaderwith a defaultTableColumnModel.JXTableHeader(javax.swing.table.TableColumnModel columnModel)Constructs aJTableHeaderwhich is initialized withcmas the column model.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description voidcolumnPropertyChange(java.beans.PropertyChangeEvent event)Implements TableColumnModelExt to allow internal update after column property changes.javax.swing.table.TableCellRenderergetCellRenderer(int columnIndex)Returns the TableCellRenderer to use for the column with the given index.TableColumnExtgetColumnExt(java.awt.Point point)Returns the tableColumn at the given location or null if the location is outside or the column is not of typeTableColumnExt.javax.swing.table.TableColumngetDraggedColumn()Returns the the dragged column if and only if, a drag is in process and the column is visible, otherwise returnsnull.java.awt.PointgetPopupLocation(java.awt.event.MouseEvent event)java.awt.PointgetPopupTriggerLocation()Returns the location of the mouseEvent that triggered the showing of the ComponentPopupMenu.java.awt.DimensiongetPreferredSize()booleangetResortsOnDoubleClick()Returns the resortsOnDoubleClick property.java.lang.StringgetToolTipText(java.awt.event.MouseEvent event)JXTablegetXTable()Returns the associated table if it is of type JXTable, or null if not.voidsetDraggedColumn(javax.swing.table.TableColumn column)voidsetDraggedDistance(int distance)voidsetResizingColumn(javax.swing.table.TableColumn aColumn)voidsetResortsOnDoubleClick(boolean resortsOnDoubleClick)Sets the resortsOnDoubleClick property.voidsetTable(javax.swing.JTable table)-
Methods inherited from class javax.swing.table.JTableHeader
columnAdded, columnAtPoint, columnMarginChanged, columnMoved, columnRemoved, columnSelectionChanged, getAccessibleContext, getColumnModel, getDefaultRenderer, getDraggedDistance, getHeaderRect, getReorderingAllowed, getResizingAllowed, getResizingColumn, getTable, getUI, getUIClassID, getUpdateTableInRealTime, resizeAndRepaint, setColumnModel, setDefaultRenderer, setReorderingAllowed, setResizingAllowed, setUI, setUpdateTableInRealTime, updateUI
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, 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, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, 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, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate
-
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, 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, 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
-
-
-
-
Constructor Detail
-
JXTableHeader
public JXTableHeader()
Constructs aJTableHeaderwith a defaultTableColumnModel.- See Also:
JTableHeader.createDefaultColumnModel()
-
JXTableHeader
public JXTableHeader(javax.swing.table.TableColumnModel columnModel)
Constructs aJTableHeaderwhich is initialized withcmas the column model. Ifcmisnullthis method will initialize the table header with a defaultTableColumnModel.- Parameters:
columnModel- the column model for the table- See Also:
JTableHeader.createDefaultColumnModel()
-
-
Method Detail
-
setTable
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?
- Overrides:
setTablein classjavax.swing.table.JTableHeader
-
columnPropertyChange
public void columnPropertyChange(java.beans.PropertyChangeEvent event)
Implements TableColumnModelExt to allow internal update after column property changes.This implementation triggers a resizeAndRepaint on every propertyChange which doesn't already fire a "normal" columnModelEvent.
- Specified by:
columnPropertyChangein interfaceTableColumnModelExtListener- Parameters:
event- change notification from a contained TableColumn.- See Also:
isColumnEvent(PropertyChangeEvent),TableColumnModelExtListener
-
getPopupLocation
public java.awt.Point getPopupLocation(java.awt.event.MouseEvent event)
Overridden for bookkeeping: the given event location is stored for later access.
- Overrides:
getPopupLocationin classjavax.swing.JComponent- See Also:
getPopupTriggerLocation()
-
getPopupTriggerLocation
public java.awt.Point getPopupTriggerLocation()
Returns the location of the mouseEvent that triggered the showing of the ComponentPopupMenu.- Returns:
- the location of the mouseEvent that triggered the last showing of the ComponentPopup, or null if it was triggered by keyboard.
-
getToolTipText
public java.lang.String getToolTipText(java.awt.event.MouseEvent event)
Overridden to respect the column tooltip, if available.
- Overrides:
getToolTipTextin classjavax.swing.table.JTableHeader- Returns:
- the column tooltip of the column at the mouse position if not null or super if not available.
-
getColumnExt
public TableColumnExt getColumnExt(java.awt.Point point)
Returns the tableColumn at the given location or null if the location is outside or the column is not of typeTableColumnExt.- Parameters:
point- the location to return the column for- Returns:
- the tableColumn at the location or null
-
getXTable
public JXTable getXTable()
Returns the associated table if it is of type JXTable, or null if not.- Returns:
- the associated table if of type JXTable or null if not.
-
getResortsOnDoubleClick
public boolean getResortsOnDoubleClick()
Returns the resortsOnDoubleClick property.- Returns:
- a flag indicating whether or not the second click in a mouseClicked event should toggle the sort order again.
- See Also:
setResortsOnDoubleClick(boolean)
-
setResortsOnDoubleClick
public void setResortsOnDoubleClick(boolean resortsOnDoubleClick)
Sets the resortsOnDoubleClick property. If enabled, the second click of a mouseClicked event will toggle the sort order again if the column has been unsorted before. This is introduced to support feature request #271-swingx. It is effective only if the coupled table is of type JXTable and has full control about its RowSorter's properties. The default value is false.- Parameters:
resortsOnDoubleClick- a boolean indicating whether or not the second click in a mouseClicked event should resort the column.- See Also:
getResortsOnDoubleClick()
-
getCellRenderer
public javax.swing.table.TableCellRenderer getCellRenderer(int columnIndex)
Returns the TableCellRenderer to use for the column with the given index. This implementation returns the column's header renderer if available or this header's default renderer if not.- Parameters:
columnIndex- the index in view coordinates of the column- Returns:
- the renderer to use for the column, guaranteed to be not null.
-
getPreferredSize
public 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.
- Overrides:
getPreferredSizein classjavax.swing.JComponent- See Also:
getPreferredSize(Dimension),getMinimumHeight(int).
-
setDraggedColumn
public void setDraggedColumn(javax.swing.table.TableColumn column)
- Overrides:
setDraggedColumnin classjavax.swing.table.JTableHeader
-
setResizingColumn
public void setResizingColumn(javax.swing.table.TableColumn aColumn)
- Overrides:
setResizingColumnin classjavax.swing.table.JTableHeader
-
setDraggedDistance
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
trueand 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.
- Overrides:
setDraggedDistancein classjavax.swing.table.JTableHeader
-
getDraggedColumn
public 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 returnsnull.- Overrides:
getDraggedColumnin classjavax.swing.table.JTableHeader- Returns:
- the dragged column, if a drag is in process and the column is
visible, otherwise returns
null - See Also:
JTableHeader.getDraggedDistance()
-
-
DataMelt 3.0 © DataMelt by jWork.ORG