Class SpinnerCellEditor

java.lang.Object
javax.swing.AbstractCellEditor
jmt.framework.gui.table.editors.SpinnerCellEditor
All Implemented Interfaces:
Serializable, CellEditor, TableCellEditor, TableCellRenderer

public class SpinnerCellEditor extends AbstractCellEditor implements TableCellEditor, CellEditor, TableCellRenderer

Title: Spinner Table CellViewer/CellEditor

Description: A component to display a Spinner as both a viewer and an editor in a table. Internally caches already allocated editors to avoid creation of too many Spinners. Renderer instance is a single element cached too.

Author:
Leran Chen 05/08/2021
See Also:
  • Field Details

  • Constructor Details

    • SpinnerCellEditor

      protected SpinnerCellEditor(Integer num, Integer maxvalue)
      Creates a new Spinner editor or renderer basing on given number
      Parameters:
      num - number to be shown on the Spinner
  • Method Details

    • getEditorInstance

      public static SpinnerCellEditor getEditorInstance(Integer num)
      Returns a new instance of CellEditor that will display number in a Spinner
      Parameters:
      num - number to be displayed from the Spinner
      Returns:
      CellEditor created
    • getEditorInstance

      public static SpinnerCellEditor getEditorInstance(Integer num, Integer maxvalue)
    • getRendererInstance

      public static SpinnerCellEditor getRendererInstance()
      Returns a new instance of CellRenderer that will display current number in a Spinner
      Returns:
      cached CellRenderer
    • getCellEditorValue

      public Object getCellEditorValue()
      Returns the value contained in the editor.
      Specified by:
      getCellEditorValue in interface CellEditor
      Returns:
      the value contained in the editor
    • getTableCellEditorComponent

      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
      Sets an initial value for the editor. This will cause the editor to stopEditing and lose any partially edited value if the editor is editing when this method is called.

      Returns the component that should be added to the client's Component hierarchy. Once installed in the client's hierarchy this component will then be able to draw and receive user input.

      Specified by:
      getTableCellEditorComponent in interface TableCellEditor
      Parameters:
      table - the JTable that is asking the editor to edit; can be null
      value - the value of the cell to be edited; it is up to the specific editor to interpret and draw the value. For example, if value is the string "true", it could be rendered as a string or it could be rendered as a check box that is checked. null is a valid value
      isSelected - true if the cell is to be rendered with highlighting
      row - the row of the cell being edited
      column - the column of the cell being edited
      Returns:
      the component for editing
    • addChangeListener

      public void addChangeListener(ChangeListener changeListener)
    • getTableCellRendererComponent

      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
      Returns the component used for drawing the cell. This method is used to configure the renderer appropriately before drawing.
      Specified by:
      getTableCellRendererComponent in interface TableCellRenderer
      Parameters:
      table - the JTable that is asking the renderer to draw; can be null
      value - the value of the cell to be rendered. It is up to the specific renderer to interpret and draw the value. For example, if value is the string "true", it could be rendered as a string or it could be rendered as a check box that is checked. null is a valid value
      isSelected - true if the cell is to be rendered with the selection highlighted; false otherwise
      hasFocus - if true, render cell appropriately. For example, put a special border on the cell, if the cell can be edited, render in the color used to indicate editing
      row - the row index of the cell being drawn. When drawing the header, the value of row is -1
      column - the column index of the cell being drawn