Class JTableHeader

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.table.JTableHeader
All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,EventListener,Accessible,TableColumnModelListener

public classJTableHeaderextendsJComponentimplementsTableColumnModelListener,Accessible
This is the object which manages the header of theJTable.

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 thejava.beans package. Please seeXMLEncoder.

See Also:
  • Field Details

    • table

      protected JTable table
      The table for which this object is the header; the default isnull.
    • columnModel

      protected TableColumnModel columnModel
      TheTableColumnModel of the table header.
    • reorderingAllowed

      protected boolean reorderingAllowed
      If true, reordering of columns are allowed by the user; the default is true.
    • resizingAllowed

      protected boolean resizingAllowed
      If true, resizing of columns are allowed by the user; the default is true.
    • updateTableInRealTime

      protected boolean updateTableInRealTime
      Obsolete as of Java 2 platform v1.3. Real time repaints, in response to column dragging or resizing, are now unconditional.
    • resizingColumn

      protected transient TableColumn resizingColumn
      The index of the column being resized.null if not resizing.
    • draggedColumn

      protected transient TableColumn draggedColumn
      The index of the column being dragged.null if not dragging.
    • draggedDistance

      protected transient int draggedDistance
      The distance from its original position the column has been dragged.
  • Constructor Details

    • JTableHeader

      public JTableHeader()
      Constructs aJTableHeader with a defaultTableColumnModel.
      See Also:
    • JTableHeader

      public JTableHeader(TableColumnModel cm)
      Constructs aJTableHeader which is initialized withcm as the column model. Ifcm isnull this method will initialize the table header with a defaultTableColumnModel.
      Parameters:
      cm - the column model for the table
      See Also:
  • Method Details

    • setTable

      @BeanProperty(description="The table associated with this header.")public void setTable(JTable table)
      Sets the table associated with this header.
      Parameters:
      table - the new table
    • getTable

      public JTable getTable()
      Returns the table associated with this header.
      Returns:
      thetable property
    • setReorderingAllowed

      @BeanProperty(description="Whether the user can drag column headers to reorder columns.")public void setReorderingAllowed(boolean reorderingAllowed)
      Sets whether the user can drag column headers to reorder columns.
      Parameters:
      reorderingAllowed - true if the table view should allow reordering; otherwise false
      See Also:
    • getReorderingAllowed

      public boolean getReorderingAllowed()
      Returns true if the user is allowed to rearrange columns by dragging their headers, false otherwise. The default is true. You can rearrange columns programmatically regardless of this setting.
      Returns:
      thereorderingAllowed property
      See Also:
    • setResizingAllowed

      @BeanProperty(description="Whether the user can resize columns by dragging between headers.")public void setResizingAllowed(boolean resizingAllowed)
      Sets whether the user can resize columns by dragging between headers.
      Parameters:
      resizingAllowed - true if table view should allow resizing
      See Also:
    • getResizingAllowed

      public boolean getResizingAllowed()
      Returns true if the user is allowed to resize columns by dragging between their headers, false otherwise. The default is true. You can resize columns programmatically regardless of this setting.
      Returns:
      theresizingAllowed property
      See Also:
    • getDraggedColumn

      public TableColumn getDraggedColumn()
      Returns the dragged column, if and only if, a drag is in process, otherwise returnsnull.
      Returns:
      the dragged column, if a drag is in process, otherwise returnsnull
      See Also:
    • getDraggedDistance

      public int getDraggedDistance()
      Returns the column's horizontal distance from its original position, if and only if, a drag is in process. Otherwise, the the return value is meaningless.
      Returns:
      the column's horizontal distance from its original position, if a drag is in process, otherwise the return value is meaningless
      See Also:
    • getResizingColumn

      public TableColumn getResizingColumn()
      Returns the resizing column. If no column is being resized this method returnsnull.
      Returns:
      the resizing column, if a resize is in process, otherwise returnsnull
    • setUpdateTableInRealTime

      public void setUpdateTableInRealTime(boolean flag)
      Obsolete as of Java 2 platform v1.3. Real time repaints, in response to column dragging or resizing, are now unconditional.
      Parameters:
      flag - true if tableView should update the body of the table in real time
    • getUpdateTableInRealTime

      public boolean getUpdateTableInRealTime()
      Obsolete as of Java 2 platform v1.3. Real time repaints, in response to column dragging or resizing, are now unconditional.
      Returns:
      true if the table updates in real time
    • setDefaultRenderer

      public void setDefaultRenderer(TableCellRenderer defaultRenderer)
      Sets the default renderer to be used when noheaderRenderer is defined by aTableColumn.
      Parameters:
      defaultRenderer - the default renderer
      Since:
      1.3
    • getDefaultRenderer

      public TableCellRenderer getDefaultRenderer()
      Returns the default renderer used when noheaderRenderer is defined by aTableColumn.
      Returns:
      the default renderer
      Since:
      1.3
    • columnAtPoint

      public int columnAtPoint(Point point)
      Returns the index of the column thatpoint lies in, or -1 if it lies out of bounds.
      Parameters:
      point - if thispoint lies within a column, the index of that column will be returned; otherwise it is out of bounds and -1 is returned
      Returns:
      the index of the column thatpoint lies in, or -1 if it lies out of bounds
    • getHeaderRect

      public Rectangle getHeaderRect(int column)
      Returns the rectangle containing the header tile atcolumn. When thecolumn parameter is out of bounds this method uses the same conventions as theJTable methodgetCellRect.
      Parameters:
      column - index of the column
      Returns:
      the rectangle containing the header tile atcolumn
      See Also:
    • getToolTipText

      public String getToolTipText(MouseEvent event)
      Allows the renderer's tips to be used if there is text set.
      Overrides:
      getToolTipText in class JComponent
      Parameters:
      event - the location of the event identifies the proper renderer and, therefore, the proper tip
      Returns:
      the tool tip for this component
    • getPreferredSize

      public Dimension getPreferredSize()
      Returns the preferred size of the table header. This is the size required to display the header and requested for the viewport. The returnedDimensionwidth will always be calculated by the underlying TableHeaderUI, regardless of any width specified byJComponent.setPreferredSize(java.awt.Dimension)
      Overrides:
      getPreferredSize in class JComponent
      Returns:
      the size
      See Also:
    • getUI

      public TableHeaderUI getUI()
      Returns the look and feel (L&F) object that renders this component.
      Overrides:
      getUI in class JComponent
      Returns:
      theTableHeaderUI object that renders this component
    • setUI

      public void setUI(TableHeaderUI ui)
      Sets the look and feel (L&F) object that renders this component.
      Parameters:
      ui - theTableHeaderUI L&F object
      See Also:
    • updateUI

      public void updateUI()
      Notification from theUIManager that the look and feel (L&F) has changed. Replaces the current UI object with the latest version from theUIManager.
      Overrides:
      updateUI in class JComponent
      See Also:
    • getUIClassID

      public String getUIClassID()
      Returns the suffix used to construct the name of the look and feel (L&F) class used to render this component.
      Overrides:
      getUIClassID in class JComponent
      Returns:
      the string "TableHeaderUI"
      See Also:
    • setColumnModel

      @BeanProperty(description="The object governing the way columns appear in the view.")public void setColumnModel(TableColumnModel columnModel)
      Sets the column model for this table tonewModel and registers for listener notifications from the new column model.
      Parameters:
      columnModel - the new data source for this table
      Throws:
      IllegalArgumentException - ifnewModel isnull
      See Also:
    • getColumnModel

      public TableColumnModel getColumnModel()
      Returns theTableColumnModel that contains all column information of this table header.
      Returns:
      thecolumnModel property
      See Also:
    • columnAdded

      public void columnAdded(TableColumnModelEvent e)
      Invoked when a column is added to the table column model.

      Application code will not use these methods explicitly, they are used internally byJTable.

      Specified by:
      columnAdded in interface TableColumnModelListener
      Parameters:
      e - the event received
      See Also:
    • columnRemoved

      public void columnRemoved(TableColumnModelEvent e)
      Invoked when a column is removed from the table column model.

      Application code will not use these methods explicitly, they are used internally byJTable.

      Specified by:
      columnRemoved in interface TableColumnModelListener
      Parameters:
      e - the event received
      See Also:
    • columnMoved

      public void columnMoved(TableColumnModelEvent e)
      Invoked when a column is repositioned.

      Application code will not use these methods explicitly, they are used internally byJTable.

      Specified by:
      columnMoved in interface TableColumnModelListener
      Parameters:
      e - the event received
      See Also:
    • columnMarginChanged

      public void columnMarginChanged(ChangeEvent e)
      Invoked when a column is moved due to a margin change.

      Application code will not use these methods explicitly, they are used internally byJTable.

      Specified by:
      columnMarginChanged in interface TableColumnModelListener
      Parameters:
      e - the event received
      See Also:
    • columnSelectionChanged

      public void columnSelectionChanged(ListSelectionEvent e)
      Invoked when the selection model of theTableColumnModel is changed. This method currently has no effect (the header is not redrawn).

      Application code will not use these methods explicitly, they are used internally byJTable.

      Specified by:
      columnSelectionChanged in interface TableColumnModelListener
      Parameters:
      e - the event received
      See Also:
    • createDefaultColumnModel

      protected TableColumnModel createDefaultColumnModel()
      Returns the default column model object which is aDefaultTableColumnModel. A subclass can override this method to return a different column model object
      Returns:
      the default column model object
    • createDefaultRenderer

      protected TableCellRenderer createDefaultRenderer()
      Returns a default renderer to be used when no header renderer is defined by aTableColumn.
      Returns:
      the default table column renderer
      Since:
      1.3
    • initializeLocalVars

      protected void initializeLocalVars()
      Initializes the local variables and properties with default values. Used by the constructor methods.
    • resizeAndRepaint

      public void resizeAndRepaint()
      Sizes the header and marks it as needing display. Equivalent torevalidate followed byrepaint.
    • setDraggedColumn

      public void setDraggedColumn(TableColumn aColumn)
      Sets the header'sdraggedColumn toaColumn.

      Application code will not use this method explicitly, it is used internally by the column dragging mechanism.

      Parameters:
      aColumn - the column being dragged, ornull if no column is being dragged
    • setDraggedDistance

      public void setDraggedDistance(int distance)
      Sets the header'sdraggedDistance todistance.
      Parameters:
      distance - the distance dragged
    • setResizingColumn

      public void setResizingColumn(TableColumn aColumn)
      Sets the header'sresizingColumn toaColumn.

      Application code will not use this method explicitly, it is used internally by the column sizing mechanism.

      Parameters:
      aColumn - the column being resized, ornull if no column is being resized
    • paramString

      protected String paramString()
      Returns a string representation of thisJTableHeader. 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.

      OverridingparamString to provide information about the specific new aspects of the JFC components.

      Overrides:
      paramString in class JComponent
      Returns:
      a string representation of thisJTableHeader
    • getAccessibleContext

      public AccessibleContext getAccessibleContext()
      Gets the AccessibleContext associated with this JTableHeader. For JTableHeaders, the AccessibleContext takes the form of an AccessibleJTableHeader. A new AccessibleJTableHeader instance is created if necessary.
      Specified by:
      getAccessibleContext in interface Accessible
      Overrides:
      getAccessibleContext in class Component
      Returns:
      an AccessibleJTableHeader that serves as the AccessibleContext of this JTableHeader