Class NumberEditorExt

All Implemented Interfaces:
Serializable, CellEditor, TableCellEditor, TreeCellEditor

public class NumberEditorExt extends DefaultCellEditor
Issue #393-swingx: localized NumberEditor. Added feature to use StrictNumberFormatter.
Author:
Noel Grandin, Jeanette Winzenburg
See Also:
  • Constructor Details

    • NumberEditorExt

      public NumberEditorExt()
      Instantiates an editor with default NumberFormat and default NumberFormatter.
    • NumberEditorExt

      public NumberEditorExt(NumberFormat format)
      Instantiates an editor with the given NumberFormat and default NumberFormatter.
      Parameters:
      format - the NumberFormat to use for conversion, may be null to indicate usage of default NumberFormat.
    • NumberEditorExt

      public NumberEditorExt(boolean useStrictFormatter)
      Instantiates an editor with default NumberFormat and NumberFormatter depending on useStrictFormatter.
      Parameters:
      useStrictFormatter - if true, uses a StrictNumberFormatter, else uses default NumberFormatter
    • NumberEditorExt

      public NumberEditorExt(NumberFormat format, boolean useStrictFormatter)
      Instantiates an editor with the given NumberFormat and NumberFormatter depending on useStrictFormatter.
      Parameters:
      format - the NumberFormat to use for conversion, may be null to indicate usage of default NumberFormat
      useStrictFormatter - if true, uses a StrictNumberFormatter, else uses default NumberFormatter
  • Method Details

    • stopCellEditing

      public boolean stopCellEditing()
      Specified by:
      stopCellEditing in interface CellEditor
      Overrides:
      stopCellEditing in class DefaultCellEditor
    • isValid

      protected boolean isValid()
      Returns a boolean indicating whether the current text is valid for instantiating the expected Number type.
      Returns:
      true if text is valid, false otherwise.
    • getNumber

      protected Number getNumber() throws Exception
      Returns the editor value as number. May fail for a variety of reasons, as it forces parsing of the current text as well as reflective construction of the target type.
      Returns:
      the editor value or null
      Throws:
      Exception - if creation of the expected type fails in some way.
    • hasStrictFormatter

      protected boolean hasStrictFormatter()
      Returns:
    • getTableCellEditorComponent

      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)
      Override and set the border back to normal in case there was an error previously
      Specified by:
      getTableCellEditorComponent in interface TableCellEditor
      Overrides:
      getTableCellEditorComponent in class DefaultCellEditor
    • getCellEditorValue

      public Number getCellEditorValue() throws IllegalStateException

      Overridden to instantiate a Number of the expected type. Note that this may throw a IllegalStateException if invoked without querying for a valid value with stopCellEditing. This should not happen during normal usage.

      Specified by:
      getCellEditorValue in interface CellEditor
      Overrides:
      getCellEditorValue in class DefaultCellEditor
      Throws:
      IllegalStateException - if current value invalid
    • getComponent

      public JFormattedTextField getComponent()

      Convenience override with type cast.

      Overrides:
      getComponent in class DefaultCellEditor