Class JDateChooser

All Implemented Interfaces:
ActionListener, WindowListener, ImageObserver, MenuContainer, Serializable, EventListener, Accessible, ChangeListener, RootPaneContainer, WindowConstants

public final class JDateChooser extends JDefaultDialog implements ChangeListener
The JDateChooser class provides a dialog box for choosing a date.

Note that a valid I18NL10N database must be available!

The dialog box is modal, non-resizable and contains "Ok" and "Cancel" buttons to close it. Here's an example of a date chooser (Microsoft Windows L&F):

As can be seen, the following features are available:

  • The currently selected date is shown in white.
  • Whenever the mouse pointer moves over the day numbers of the calendar, they become clickable buttons. The button currently underneath the mouse pointer is shown in green (a tooltip containing the full date is shown after a while).
  • At the top of the dialog box, a navigational area is present for choosing a month and a year.
    • The optional undo button resets the calendar to its initial date (and selects it).
    • The exclamation button moves the calendar to the current date (and selects it).

When the user closes the date chooser's dialog box, its state should be queried as follows:

if (!myDateChooser.isCancelled()) {
DateStamp dateStamp = myDateChooser.getSelectedDate();
// rest of code
}

Note that the system resources must be initialised (see JARResources.fSystemResources).

Note that this class cannot be subclassed!

Version:
30/06/2018
Author:
Sven Maerivoet
See Also:
  • Constructor Details

    • JDateChooser

      public JDateChooser(JFrame owner, String title, JDefaultDialog.EType dialogType, DateStamp defaultDateStamp, JDateChooser.EUseDefaultDate useDefaultDate)
      Constructs a JDateChooser object.
      Parameters:
      owner - the frame in which this dialog is to be displayed
      title - the dialog's window title
      dialogType - the type of dialog
      defaultDateStamp - the default DateStamp used when the calendar is shown
      useDefaultDate - an EUseDefaultDate switch for enabling/disabling the use of the default date
  • Method Details

    • actionPerformed

      public void actionPerformed(ActionEvent e)
      Description copied from class: JDefaultDialog
      The dialog box's action listener.

      Note that when overriding this method in a subclass, its parent should explicitly be called in order to guarantee the correct processing of the user's input ("Ok" and "Ok/Cancel" type of dialog boxes):

      super.actionPerformed(e);
      // rest of method's code

      Specified by:
      actionPerformed in interface ActionListener
      Overrides:
      actionPerformed in class JDefaultDialog
      Parameters:
      e - the ActionEvent that is received
    • stateChanged

      public void stateChanged(ChangeEvent e)
      Specified by:
      stateChanged in interface ChangeListener
    • getSelectedDate

      public DateStamp getSelectedDate()
      Returns the currently selected date.
      Returns:
      the currently selected date
    • setDefaultDate

      public void setDefaultDate(DateStamp defaultDateStamp)
      Sets the default date.

      The default date is initially shown in the calendar, it is furthermore accessible via the optional undo button .

      Parameters:
      defaultDateStamp - the default date for the date chooser
    • initialiseClass

      protected void initialiseClass(Object[] parameters)
      Description copied from class: JDefaultDialog
      Allows custom initialisation of a subclass's member fields.

      Note that the caller should specify null if no parameters are specified.

      Overrides:
      initialiseClass in class JDefaultDialog
      Parameters:
      parameters - an array of Objects
    • setupWindowTitle

      protected final String setupWindowTitle()
      Description copied from class: JDefaultDialog
      Sets up the window title of the dialog box.

      In order to obtain a custom dialog title, the caller should override this method (it returns null in the baseclass).

      Overrides:
      setupWindowTitle in class JDefaultDialog
      Returns:
      the window title of the dialog box
    • setupMainPanel

      protected void setupMainPanel(JPanel mainPanel)
      Description copied from class: JDefaultDialog
      Sets up the custom content in the dialog box.

      A subclass should typically create labels, inputfields, ... in the dialog boxes main panel, by overriding this method.

      Note that the mainPanel object is already constructed!

      Overrides:
      setupMainPanel in class JDefaultDialog
      Parameters:
      mainPanel - the area of the dialog box that is reserved for custom content