Class JDateChooser

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.beans.PropertyChangeListener, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

    public class JDateChooser
    extends javax.swing.JPanel
    implements java.awt.event.ActionListener, java.beans.PropertyChangeListener
    A date chooser containig a date editor and a button, that makes a JCalendar visible for choosing a date. If no date editor is specified, a JTextFieldDateEditor is used as default.
    Version:
    $LastChangedRevision: 101 $, $LastChangedDate: 2006-06-04 14:42:29 +0200 (So, 04 Jun 2006) $
    Author:
    Kai Toedter
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected javax.swing.JButton calendarButton  
      protected IDateEditor dateEditor  
      protected boolean dateSelected  
      protected boolean isInitialized  
      protected JCalendar jcalendar  
      protected java.util.Date lastSelectedDate  
      protected javax.swing.JPopupMenu popup  
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      JDateChooser()
      Creates a new JDateChooser.
      JDateChooser​(IDateEditor dateEditor)
      Creates a new JDateChooser with given IDateEditor.
      JDateChooser​(JCalendar jcal, java.util.Date date, java.lang.String dateFormatString, IDateEditor dateEditor)
      Creates a new JDateChooser.
      JDateChooser​(java.lang.String datePattern, java.lang.String maskPattern, char placeholder)
      Creates a new JDateChooser.
      JDateChooser​(java.util.Date date)
      Creates a new JDateChooser.
      JDateChooser​(java.util.Date date, java.lang.String dateFormatString)
      Creates a new JDateChooser.
      JDateChooser​(java.util.Date date, java.lang.String dateFormatString, IDateEditor dateEditor)
      Creates a new JDateChooser.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Called when the jalendar button was pressed.
      void cleanup()
      Should only be invoked if the JDateChooser is not used anymore.
      java.util.Calendar getCalendar()
      Returns the calendar.
      javax.swing.JButton getCalendarButton()
      Returns the calendar button.
      java.util.Date getDate()
      Returns the date.
      IDateEditor getDateEditor()
      Returns the date editor.
      java.lang.String getDateFormatString()
      Gets the date format string.
      JCalendar getJCalendar()
      Returns the JCalendar component.
      java.util.Date getMaxSelectableDate()
      Gets the maximum selectable date.
      java.util.Date getMinSelectableDate()
      Gets the minimum selectable date.
      boolean isEnabled()
      Returns true, if enabled.
      static void main​(java.lang.String[] s)
      Creates a JFrame with a JDateChooser inside and can be used for testing.
      void propertyChange​(java.beans.PropertyChangeEvent evt)
      Listens for a "date" property change or a "day" property change event from the JCalendar.
      void setCalendar​(java.util.Calendar calendar)
      Sets the calendar.
      void setDate​(java.util.Date date)
      Sets the date.
      void setDateFormatString​(java.lang.String dfString)
      Sets the date format string.
      void setEnabled​(boolean enabled)
      Enable or disable the JDateChooser.
      void setFont​(java.awt.Font font)
      Sets the font of all subcomponents.
      void setIcon​(javax.swing.ImageIcon icon)
      Sets the icon of the buuton.
      void setLocale​(java.util.Locale l)
      Sets the locale.
      void setMaxSelectableDate​(java.util.Date max)  
      void setMinSelectableDate​(java.util.Date min)  
      void setSelectableDateRange​(java.util.Date min, java.util.Date max)
      Sets a valid date range for selectable dates.
      void updateUI()
      Updates the UI of itself and the popup.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • calendarButton

        protected javax.swing.JButton calendarButton
      • popup

        protected javax.swing.JPopupMenu popup
      • isInitialized

        protected boolean isInitialized
      • dateSelected

        protected boolean dateSelected
      • lastSelectedDate

        protected java.util.Date lastSelectedDate
    • Constructor Detail

      • JDateChooser

        public JDateChooser()
        Creates a new JDateChooser. By default, no date is set and the textfield is empty.
      • JDateChooser

        public JDateChooser​(IDateEditor dateEditor)
        Creates a new JDateChooser with given IDateEditor.
        Parameters:
        dateEditor - the dateEditor to be used used to display the date. if null, a JTextFieldDateEditor is used.
      • JDateChooser

        public JDateChooser​(java.util.Date date)
        Creates a new JDateChooser.
        Parameters:
        date - the date or null
      • JDateChooser

        public JDateChooser​(java.util.Date date,
                            java.lang.String dateFormatString)
        Creates a new JDateChooser.
        Parameters:
        date - the date or null
        dateFormatString - the date format string or null (then MEDIUM SimpleDateFormat format is used)
      • JDateChooser

        public JDateChooser​(java.util.Date date,
                            java.lang.String dateFormatString,
                            IDateEditor dateEditor)
        Creates a new JDateChooser.
        Parameters:
        date - the date or null
        dateFormatString - the date format string or null (then MEDIUM SimpleDateFormat format is used)
        dateEditor - the dateEditor to be used used to display the date. if null, a JTextFieldDateEditor is used.
      • JDateChooser

        public JDateChooser​(java.lang.String datePattern,
                            java.lang.String maskPattern,
                            char placeholder)
        Creates a new JDateChooser. If the JDateChooser is created with this constructor, the mask will be always visible in the date editor. Please note that the date pattern and the mask will not be changed if the locale of the JDateChooser is changed.
        Parameters:
        datePattern - the date pattern, e.g. "MM/dd/yy"
        maskPattern - the mask pattern, e.g. "##/##/##"
        placeholder - the placeholer charachter, e.g. '_'
      • JDateChooser

        public JDateChooser​(JCalendar jcal,
                            java.util.Date date,
                            java.lang.String dateFormatString,
                            IDateEditor dateEditor)
        Creates a new JDateChooser.
        Parameters:
        jcal - the JCalendar to be used
        date - the date or null
        dateFormatString - the date format string or null (then MEDIUM Date format is used)
        dateEditor - the dateEditor to be used used to display the date. if null, a JTextFieldDateEditor is used.
    • Method Detail

      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Called when the jalendar button was pressed.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Parameters:
        e - the action event
      • propertyChange

        public void propertyChange​(java.beans.PropertyChangeEvent evt)
        Listens for a "date" property change or a "day" property change event from the JCalendar. Updates the date editor and closes the popup.
        Specified by:
        propertyChange in interface java.beans.PropertyChangeListener
        Parameters:
        evt - the event
      • updateUI

        public void updateUI()
        Updates the UI of itself and the popup.
        Overrides:
        updateUI in class javax.swing.JPanel
      • setLocale

        public void setLocale​(java.util.Locale l)
        Sets the locale.
        Overrides:
        setLocale in class java.awt.Component
        Parameters:
        l - The new locale value
      • getDateFormatString

        public java.lang.String getDateFormatString()
        Gets the date format string.
        Returns:
        Returns the dateFormatString.
      • setDateFormatString

        public void setDateFormatString​(java.lang.String dfString)
        Sets the date format string. E.g "MMMMM d, yyyy" will result in "July 21, 2004" if this is the selected date and locale is English.
        Parameters:
        dfString - The dateFormatString to set.
      • getDate

        public java.util.Date getDate()
        Returns the date. If the JDateChooser is started with a null date and no date was set by the user, null is returned.
        Returns:
        the current date
      • setDate

        public void setDate​(java.util.Date date)
        Sets the date. Fires the property change "date" if date != null.
        Parameters:
        date - the new date.
      • getCalendar

        public java.util.Calendar getCalendar()
        Returns the calendar. If the JDateChooser is started with a null date (or null calendar) and no date was set by the user, null is returned.
        Returns:
        the current calendar
      • setCalendar

        public void setCalendar​(java.util.Calendar calendar)
        Sets the calendar. Value null will set the null date on the date editor.
        Parameters:
        calendar - the calendar.
      • setEnabled

        public void setEnabled​(boolean enabled)
        Enable or disable the JDateChooser.
        Overrides:
        setEnabled in class javax.swing.JComponent
        Parameters:
        enabled - the new enabled value
      • isEnabled

        public boolean isEnabled()
        Returns true, if enabled.
        Overrides:
        isEnabled in class java.awt.Component
        Returns:
        true, if enabled.
      • setIcon

        public void setIcon​(javax.swing.ImageIcon icon)
        Sets the icon of the buuton.
        Parameters:
        icon - The new icon
      • setFont

        public void setFont​(java.awt.Font font)
        Sets the font of all subcomponents.
        Overrides:
        setFont in class javax.swing.JComponent
        Parameters:
        font - the new font
      • getJCalendar

        public JCalendar getJCalendar()
        Returns the JCalendar component. THis is usefull if you want to set some properties.
        Returns:
        the JCalendar
      • getCalendarButton

        public javax.swing.JButton getCalendarButton()
        Returns the calendar button.
        Returns:
        the calendar button
      • getDateEditor

        public IDateEditor getDateEditor()
        Returns the date editor.
        Returns:
        the date editor
      • setSelectableDateRange

        public void setSelectableDateRange​(java.util.Date min,
                                           java.util.Date max)
        Sets a valid date range for selectable dates. If max is before min, the default range with no limitation is set.
        Parameters:
        min - the minimum selectable date or null (then the minimum date is set to 01\01\0001)
        max - the maximum selectable date or null (then the maximum date is set to 01\01\9999)
      • setMaxSelectableDate

        public void setMaxSelectableDate​(java.util.Date max)
      • setMinSelectableDate

        public void setMinSelectableDate​(java.util.Date min)
      • getMaxSelectableDate

        public java.util.Date getMaxSelectableDate()
        Gets the maximum selectable date.
        Returns:
        the maximum selectable date
      • getMinSelectableDate

        public java.util.Date getMinSelectableDate()
        Gets the minimum selectable date.
        Returns:
        the minimum selectable date
      • cleanup

        public void cleanup()
        Should only be invoked if the JDateChooser is not used anymore. Due to popup handling it had to register a change listener to the default menu selection manager which will be unregistered here. Use this method to cleanup possible memory leaks.
      • main

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