Class SortingHeaderRenderer

  • All Implemented Interfaces:
    javax.swing.table.TableCellRenderer

    public abstract class SortingHeaderRenderer
    extends java.lang.Object
    implements javax.swing.table.TableCellRenderer
    Renderer for JTable (header) cells that can indicate sorting status. It modifies a supplied default renderer by adding a little arrow pointing up or down for the single sorted column in a table as reported by a couple of abstract methods.
    Since:
    15 Aug 2017
    Author:
    Mark Taylor
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected SortingHeaderRenderer​(javax.swing.table.TableCellRenderer baseRenderer)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static javax.swing.Icon createArrowIcon​(boolean isDescending, int size)
      Returns an icon suitable for marking a column as sorted.
      javax.swing.table.TableCellRenderer getBaseRenderer()
      Returns the renderer on which this one is based.
      abstract int getSortColumnIndex()
      Indicates the index of the table column on which sorting is performed.
      java.awt.Component getTableCellRendererComponent​(javax.swing.JTable table, java.lang.Object value, boolean isSelected, boolean hasFocus, int irow, int icol)  
      abstract boolean isSortDescending()
      Indicates the sense of the sorting.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SortingHeaderRenderer

        protected SortingHeaderRenderer​(javax.swing.table.TableCellRenderer baseRenderer)
        Constructor.
        Parameters:
        baseRenderer - renderer on which this one is based
    • Method Detail

      • getBaseRenderer

        public javax.swing.table.TableCellRenderer getBaseRenderer()
        Returns the renderer on which this one is based.
        Returns:
        base renderer
      • getSortColumnIndex

        public abstract int getSortColumnIndex()
        Indicates the index of the table column on which sorting is performed. If the table is unsorted (uses natural order) this method should return a negative number.
        Returns:
        index of sorting column, or negative value
      • isSortDescending

        public abstract boolean isSortDescending()
        Indicates the sense of the sorting.
        Returns:
        true for descending sort, false for ascending
      • getTableCellRendererComponent

        public java.awt.Component getTableCellRendererComponent​(javax.swing.JTable table,
                                                                java.lang.Object value,
                                                                boolean isSelected,
                                                                boolean hasFocus,
                                                                int irow,
                                                                int icol)
        Specified by:
        getTableCellRendererComponent in interface javax.swing.table.TableCellRenderer
      • createArrowIcon

        public static javax.swing.Icon createArrowIcon​(boolean isDescending,
                                                       int size)
        Returns an icon suitable for marking a column as sorted.
        Parameters:
        isDescending - false for sort up, true for sort down
        size - icon size, for instance font size of associated text
        Returns:
        icon