Package org.jfree.ui

Class SortButtonRenderer

java.lang.Object
org.jfree.ui.SortButtonRenderer
All Implemented Interfaces:
TableCellRenderer

public class SortButtonRenderer extends Object implements TableCellRenderer
A table cell renderer for table headings - uses one of three JButton instances to indicate the sort order for the table column.

This class (and also BevelArrowIcon) is adapted from original code by Nobuo Tamemasa (version 1.0, 26-Feb-1999) posted on www.codeguru.com.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private JButton
    The three buttons that are used to render the table header cells.
    private JLabel
    The ascending label (only used with MacOSX).
    private JButton
    The three buttons that are used to render the table header cells.
    private JLabel
    The descending label (only used with MacOSX).
    static final int
    Useful constant indicating ASCENDING (that is, arrow pointing down) sorting in the table.
    static final int
    Useful constant indicating NO sorting.
    private JButton
    The three buttons that are used to render the table header cells.
    private JLabel
    The normal label (only used with MacOSX).
    private int
    The current pressed column (-1 for no column).
    static final int
    Useful constant indicating DESCENDING (that is, arrow pointing up) sorting in the table.
    private boolean
    Used to allow the class to work out whether to use the buttuns or labels.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a new button renderer.
  • Method Summary

    Modifier and Type
    Method
    Description
    private JButton
    getRendererButton(boolean isSorting, boolean isAscending)
    Returns the correct button component.
    private JLabel
    getRendererLabel(boolean isSorting, boolean isAscending)
    Returns the correct label component.
    getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    Returns the renderer component.
    void
    setPressedColumn(int column)
    Sets the pressed column.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NONE

      public static final int NONE
      Useful constant indicating NO sorting.
      See Also:
    • DOWN

      public static final int DOWN
      Useful constant indicating ASCENDING (that is, arrow pointing down) sorting in the table.
      See Also:
    • UP

      public static final int UP
      Useful constant indicating DESCENDING (that is, arrow pointing up) sorting in the table.
      See Also:
    • pressedColumn

      private int pressedColumn
      The current pressed column (-1 for no column).
    • normalButton

      private JButton normalButton
      The three buttons that are used to render the table header cells.
    • ascendingButton

      private JButton ascendingButton
      The three buttons that are used to render the table header cells.
    • descendingButton

      private JButton descendingButton
      The three buttons that are used to render the table header cells.
    • useLabels

      private boolean useLabels
      Used to allow the class to work out whether to use the buttuns or labels. Labels are required when using the aqua look and feel cos the buttons won't fit.
    • normalLabel

      private JLabel normalLabel
      The normal label (only used with MacOSX).
    • ascendingLabel

      private JLabel ascendingLabel
      The ascending label (only used with MacOSX).
    • descendingLabel

      private JLabel descendingLabel
      The descending label (only used with MacOSX).
  • Constructor Details

    • SortButtonRenderer

      public SortButtonRenderer()
      Creates a new button renderer.
  • Method Details

    • getTableCellRendererComponent

      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
      Returns the renderer component.
      Specified by:
      getTableCellRendererComponent in interface TableCellRenderer
      Parameters:
      table - the table.
      value - the value.
      isSelected - selected?
      hasFocus - focussed?
      row - the row.
      column - the column.
      Returns:
      the renderer.
    • getRendererButton

      private JButton getRendererButton(boolean isSorting, boolean isAscending)
      Returns the correct button component.
      Parameters:
      isSorting - whether the render component represents the sort column.
      isAscending - whether the model is ascending.
      Returns:
      either the ascending, descending or normal button.
    • getRendererLabel

      private JLabel getRendererLabel(boolean isSorting, boolean isAscending)
      Returns the correct label component.
      Parameters:
      isSorting - whether the render component represents the sort column.
      isAscending - whether the model is ascending.
      Returns:
      either the ascending, descending or normal label.
    • setPressedColumn

      public void setPressedColumn(int column)
      Sets the pressed column.
      Parameters:
      column - the column.