Class JTextFieldDateEditor

All Implemented Interfaces:
IDateEditor, ActionListener, FocusListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, CaretListener, Scrollable, SwingConstants

public class JTextFieldDateEditor extends JFormattedTextField implements IDateEditor, CaretListener, FocusListener, ActionListener
JTextFieldDateEditor is the default editor used by JDateChooser. It is a formatted text field, that colores valid dates green/black and invalid dates red. The date format patten and mask can be set manually. If not set, the MEDIUM pattern of a SimpleDateFormat with regards to the actual locale is used.
Version:
$LastChangedRevision: 97 $, $LastChangedDate: 2006-05-24 17:30:41 +0200 (Mi, 24 Mai 2006) $
Author:
Kai Toedter
See Also:
  • Field Details

    • date

      protected Date date
    • dateFormatter

      protected SimpleDateFormat dateFormatter
    • maskFormatter

      protected MaskFormatter maskFormatter
    • datePattern

      protected String datePattern
    • maskPattern

      protected String maskPattern
    • placeholder

      protected char placeholder
    • darkGreen

      protected Color darkGreen
    • dateUtil

      protected DateUtil dateUtil
  • Constructor Details

    • JTextFieldDateEditor

      public JTextFieldDateEditor()
    • JTextFieldDateEditor

      public JTextFieldDateEditor(String datePattern, String maskPattern, char placeholder)
    • JTextFieldDateEditor

      public JTextFieldDateEditor(boolean showMask, String datePattern, String maskPattern, char placeholder)
  • Method Details

    • getDate

      public Date getDate()
      Description copied from interface: IDateEditor
      Returns the date.
      Specified by:
      getDate in interface IDateEditor
      Returns:
      the date
    • setDate

      public void setDate(Date date)
      Description copied from interface: IDateEditor
      Sets the date. This should be implemented as a bound property, firing the "date" property.
      Specified by:
      setDate in interface IDateEditor
      Parameters:
      date - the date to set
    • setDate

      protected void setDate(Date date, boolean firePropertyChange)
      Sets the date.
      Parameters:
      date - the date
      firePropertyChange - true, if the date property should be fired.
    • setDateFormatString

      public void setDateFormatString(String dateFormatString)
      Description copied from interface: IDateEditor
      Sets the date format string, e.g. "MM/dd/yy". If the date format string is null or invalid, the date format string will be set to the MEDIUM Simple date format of the current locale.
      Specified by:
      setDateFormatString in interface IDateEditor
      Parameters:
      dateFormatString - the date format string
    • getDateFormatString

      public String getDateFormatString()
      Description copied from interface: IDateEditor
      Returns tha date format string.
      Specified by:
      getDateFormatString in interface IDateEditor
      Returns:
      the date format string
    • getUiComponent

      public JComponent getUiComponent()
      Description copied from interface: IDateEditor
      Returns the UI component, e.g. the actual JTextField implementing the editor.
      Specified by:
      getUiComponent in interface IDateEditor
      Returns:
      the UI component
    • caretUpdate

      public void caretUpdate(CaretEvent event)
      After any user input, the value of the textfield is proofed. Depending on being a valid date, the value is colored green or red.
      Specified by:
      caretUpdate in interface CaretListener
      Parameters:
      event - the caret event
    • focusLost

      public void focusLost(FocusEvent focusEvent)
      Specified by:
      focusLost in interface FocusListener
    • focusGained

      public void focusGained(FocusEvent e)
      Specified by:
      focusGained in interface FocusListener
    • setLocale

      public void setLocale(Locale locale)
      Description copied from interface: IDateEditor
      Sets the locale. Usually this should have impact on the current date format string.
      Specified by:
      setLocale in interface IDateEditor
      Overrides:
      setLocale in class Component
      Parameters:
      locale - the locale to set
    • createMaskFromDatePattern

      public String createMaskFromDatePattern(String datePattern)
      Creates a mask from a date pattern. This is a very simple (and incomplete) implementation thet works only with numbers. A date pattern of "MM/dd/yy" will result in the mask "##/##/##". Probably you want to override this method if it does not fit your needs.
      Parameters:
      datePattern - the date pattern
      Returns:
      the mask
    • isMaskVisible

      public boolean isMaskVisible()
      Returns true, if the mask is visible.
      Returns:
      true, if the mask is visible
    • setMaskVisible

      public void setMaskVisible(boolean isMaskVisible)
      Sets the mask visible.
      Parameters:
      isMaskVisible - true, if the mask should be visible
    • getPreferredSize

      public Dimension getPreferredSize()
      Returns the preferred size. If a date pattern is set, it is the size the date pattern would take.
      Overrides:
      getPreferredSize in class JTextField
    • actionPerformed

      public void actionPerformed(ActionEvent e)
      Validates the typed date and sets it (only if it is valid).
      Specified by:
      actionPerformed in interface ActionListener
    • setEnabled

      public void setEnabled(boolean b)
      Enables and disabled the compoment. It also fixes the background bug 4991597 and sets the background explicitely to a TextField.inactiveBackground.
      Specified by:
      setEnabled in interface IDateEditor
      Overrides:
      setEnabled in class JComponent
      Parameters:
      b - true, if the UI component should be enabled.
    • getMaxSelectableDate

      public Date getMaxSelectableDate()
      Description copied from interface: IDateEditor
      Gets the minimum selectable date.
      Specified by:
      getMaxSelectableDate in interface IDateEditor
      Returns:
      the minimum selectable date
    • getMinSelectableDate

      public Date getMinSelectableDate()
      Description copied from interface: IDateEditor
      Gets the maximum selectable date.
      Specified by:
      getMinSelectableDate in interface IDateEditor
      Returns:
      the maximum selectable date
    • setMaxSelectableDate

      public void setMaxSelectableDate(Date max)
      Description copied from interface: IDateEditor
      Sets the maximum selectable date.
      Specified by:
      setMaxSelectableDate in interface IDateEditor
      Parameters:
      max - maximum selectable date
    • setMinSelectableDate

      public void setMinSelectableDate(Date min)
      Description copied from interface: IDateEditor
      Sets the minimum selectable date.
      Specified by:
      setMinSelectableDate in interface IDateEditor
      Parameters:
      min - minimum selectable date
    • setSelectableDateRange

      public void setSelectableDateRange(Date min, Date max)
      Description copied from interface: IDateEditor
      Sets a valid date range for selectable dates. If max is before min, the default range with no limitation is set.
      Specified by:
      setSelectableDateRange in interface IDateEditor
      Parameters:
      min - the minimum selectable date or null (then the minimum date should be set to 01\01\0001)
      max - the maximum selectable date or null (then the maximum date should be set to 01\01\9999)
    • main

      public static void main(String[] s)
      Creates a JFrame with a JCalendar inside and can be used for testing.
      Parameters:
      s - The command line arguments