Class JDayChooser

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

    public class JDayChooser
    extends javax.swing.JPanel
    implements java.awt.event.ActionListener, java.awt.event.KeyListener, java.awt.event.FocusListener
    JDayChooser is a bean for choosing a day.
    Version:
    $LastChangedRevision: 107 $, $LastChangedDate: 2009-05-01 15:48:00 +0200 (Fr, 01 Mai 2009) $
    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
    • Constructor Summary

      Constructors 
      Constructor Description
      JDayChooser()
      Default JDayChooser constructor.
      JDayChooser​(boolean weekOfYearVisible)
      JDayChooser constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      JDayChooser is the ActionListener for all day buttons.
      protected void drawDays()
      Hides and shows the day buttons.
      protected void drawWeeks()
      Hides and shows the week buttons.
      void focusGained​(java.awt.event.FocusEvent e)
      JDayChooser is the FocusListener for all day buttons.
      void focusLost​(java.awt.event.FocusEvent e)
      Does nothing.
      int getDay()
      Returns the selected day.
      javax.swing.JPanel getDayPanel()
      Returns the day panel.
      java.awt.Color getDecorationBackgroundColor()
      Returns the color of the decoration (day names and weeks).
      java.util.Locale getLocale()
      Returns the locale.
      int getMaxDayCharacters()
      Gets the maximum number of characters of a day name or 0.
      java.util.Date getMaxSelectableDate()
      Gets the maximum selectable date.
      java.util.Date getMinSelectableDate()
      Gets the minimum selectable date.
      java.awt.Color getSundayForeground()
      Returns the Sunday foreground.
      java.awt.Color getWeekdayForeground()
      Returns the weekday foreground.
      protected void init()
      Initilizes the locale specific names for the days of the week.
      protected void initDecorations()
      Initializes both day names and weeks of the year.
      boolean isDayBordersVisible()  
      boolean isDecorationBackgroundVisible()
      The decoration background is the background color of the day titles and the weeks of the year.
      boolean isDecorationBordersVisible()
      The decoration border is the button border of the day titles and the weeks of the year.
      boolean isWeekOfYearVisible()
      In some Countries it is often usefull to know in which week of the year a date is.
      void keyPressed​(java.awt.event.KeyEvent e)
      JDayChooser is the KeyListener for all day buttons.
      void keyReleased​(java.awt.event.KeyEvent e)
      Does nothing.
      void keyTyped​(java.awt.event.KeyEvent e)
      Does nothing.
      static void main​(java.lang.String[] s)
      Creates a JFrame with a JDayChooser inside and can be used for testing.
      void setAlwaysFireDayProperty​(boolean alwaysFire)
      this is needed for JDateChooser.
      void setCalendar​(java.util.Calendar calendar)
      Sets a specific calendar.
      void setDay​(int d)
      Sets the day.
      void setDayBordersVisible​(boolean dayBordersVisible)  
      void setDecorationBackgroundColor​(java.awt.Color decorationBackgroundColor)
      Sets the background of days and weeks of year buttons.
      void setDecorationBackgroundVisible​(boolean decorationBackgroundVisible)
      The decoration background is the background color of the day titles and the weeks of the year.
      void setDecorationBordersVisible​(boolean decorationBordersVisible)
      The decoration border is the button border of the day titles and the weeks of the year.
      void setEnabled​(boolean enabled)
      Enable or disable the JDayChooser.
      void setFocus()
      Requests that the selected day also have the focus.
      void setFont​(java.awt.Font font)
      Sets the font property.
      void setForeground​(java.awt.Color foreground)
      Sets the foregroundColor color.
      void setLocale​(java.util.Locale locale)
      Sets the locale.
      void setMaxDayCharacters​(int maxDayCharacters)
      Sets the maximum number of characters per day in the day bar.
      java.util.Date setMaxSelectableDate​(java.util.Date max)
      Sets the maximum selectable date.
      java.util.Date setMinSelectableDate​(java.util.Date min)
      Sets the minimum selectable date.
      void setMonth​(int month)
      Sets a specific month.
      void setSelectableDateRange​(java.util.Date min, java.util.Date max)
      Sets a valid date range for selectable dates.
      void setSundayForeground​(java.awt.Color sundayForeground)
      Sets the Sunday foreground.
      void setWeekdayForeground​(java.awt.Color weekdayForeground)
      Sets the weekday foreground.
      void setWeekOfYearVisible​(boolean weekOfYearVisible)
      In some Countries it is often usefull to know in which week of the year a date is.
      void setYear​(int year)
      Sets a specific year.
      void updateUI()
      Updates the UI and sets the day button preferences.
      • 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, 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, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, 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

      • days

        protected javax.swing.JButton[] days
      • weeks

        protected javax.swing.JButton[] weeks
      • selectedDay

        protected javax.swing.JButton selectedDay
      • weekPanel

        protected javax.swing.JPanel weekPanel
      • dayPanel

        protected javax.swing.JPanel dayPanel
      • day

        protected int day
      • oldDayBackgroundColor

        protected java.awt.Color oldDayBackgroundColor
      • selectedColor

        protected java.awt.Color selectedColor
      • sundayForeground

        protected java.awt.Color sundayForeground
      • weekdayForeground

        protected java.awt.Color weekdayForeground
      • decorationBackgroundColor

        protected java.awt.Color decorationBackgroundColor
      • dayNames

        protected java.lang.String[] dayNames
      • calendar

        protected java.util.Calendar calendar
      • today

        protected java.util.Calendar today
      • locale

        protected java.util.Locale locale
      • initialized

        protected boolean initialized
      • weekOfYearVisible

        protected boolean weekOfYearVisible
      • decorationBackgroundVisible

        protected boolean decorationBackgroundVisible
      • decorationBordersVisible

        protected boolean decorationBordersVisible
      • dayBordersVisible

        protected boolean dayBordersVisible
      • minSelectableDate

        protected java.util.Date minSelectableDate
      • maxSelectableDate

        protected java.util.Date maxSelectableDate
      • defaultMinSelectableDate

        protected java.util.Date defaultMinSelectableDate
      • defaultMaxSelectableDate

        protected java.util.Date defaultMaxSelectableDate
      • maxDayCharacters

        protected int maxDayCharacters
    • Constructor Detail

      • JDayChooser

        public JDayChooser()
        Default JDayChooser constructor.
      • JDayChooser

        public JDayChooser​(boolean weekOfYearVisible)
        JDayChooser constructor.
        Parameters:
        weekOfYearVisible - true, if the weeks of a year shall be shown
    • Method Detail

      • init

        protected void init()
        Initilizes the locale specific names for the days of the week.
      • initDecorations

        protected void initDecorations()
        Initializes both day names and weeks of the year.
      • drawWeeks

        protected void drawWeeks()
        Hides and shows the week buttons.
      • drawDays

        protected void drawDays()
        Hides and shows the day buttons.
      • getLocale

        public java.util.Locale getLocale()
        Returns the locale.
        Overrides:
        getLocale in class java.awt.Component
        Returns:
        the locale value
        See Also:
        setLocale(java.util.Locale)
      • setLocale

        public void setLocale​(java.util.Locale locale)
        Sets the locale.
        Overrides:
        setLocale in class java.awt.Component
        Parameters:
        locale - the new locale value
        See Also:
        getLocale()
      • setDay

        public void setDay​(int d)
        Sets the day. This is a bound property.
        Parameters:
        d - the day
        See Also:
        getDay()
      • setAlwaysFireDayProperty

        public void setAlwaysFireDayProperty​(boolean alwaysFire)
        this is needed for JDateChooser.
        Parameters:
        alwaysFire - true, if day property shall be fired every time a day is chosen.
      • getDay

        public int getDay()
        Returns the selected day.
        Returns:
        the day value
        See Also:
        setDay(int)
      • setMonth

        public void setMonth​(int month)
        Sets a specific month. This is needed for correct graphical representation of the days.
        Parameters:
        month - the new month
      • setYear

        public void setYear​(int year)
        Sets a specific year. This is needed for correct graphical representation of the days.
        Parameters:
        year - the new year
      • setCalendar

        public void setCalendar​(java.util.Calendar calendar)
        Sets a specific calendar. This is needed for correct graphical representation of the days.
        Parameters:
        calendar - the new calendar
      • setFont

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

        public void setForeground​(java.awt.Color foreground)
        Sets the foregroundColor color.
        Overrides:
        setForeground in class javax.swing.JComponent
        Parameters:
        foreground - the new foregroundColor
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        JDayChooser is the ActionListener for all day buttons.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Parameters:
        e - the ActionEvent
      • focusGained

        public void focusGained​(java.awt.event.FocusEvent e)
        JDayChooser is the FocusListener for all day buttons. (Added by Thomas Schaefer)
        Specified by:
        focusGained in interface java.awt.event.FocusListener
        Parameters:
        e - the FocusEvent
      • focusLost

        public void focusLost​(java.awt.event.FocusEvent e)
        Does nothing.
        Specified by:
        focusLost in interface java.awt.event.FocusListener
        Parameters:
        e - the FocusEvent
      • keyPressed

        public void keyPressed​(java.awt.event.KeyEvent e)
        JDayChooser is the KeyListener for all day buttons. (Added by Thomas Schaefer and modified by Austin Moore)
        Specified by:
        keyPressed in interface java.awt.event.KeyListener
        Parameters:
        e - the KeyEvent
      • keyTyped

        public void keyTyped​(java.awt.event.KeyEvent e)
        Does nothing.
        Specified by:
        keyTyped in interface java.awt.event.KeyListener
        Parameters:
        e - the KeyEvent
      • keyReleased

        public void keyReleased​(java.awt.event.KeyEvent e)
        Does nothing.
        Specified by:
        keyReleased in interface java.awt.event.KeyListener
        Parameters:
        e - the KeyEvent
      • setEnabled

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

        public boolean isWeekOfYearVisible()
        In some Countries it is often usefull to know in which week of the year a date is.
        Returns:
        boolean true, if the weeks of the year is shown
      • setWeekOfYearVisible

        public void setWeekOfYearVisible​(boolean weekOfYearVisible)
        In some Countries it is often usefull to know in which week of the year a date is.
        Parameters:
        weekOfYearVisible - true, if the weeks of the year shall be shown
      • getDayPanel

        public javax.swing.JPanel getDayPanel()
        Returns the day panel.
        Returns:
        the day panel
      • getDecorationBackgroundColor

        public java.awt.Color getDecorationBackgroundColor()
        Returns the color of the decoration (day names and weeks).
        Returns:
        the color of the decoration (day names and weeks).
      • setDecorationBackgroundColor

        public void setDecorationBackgroundColor​(java.awt.Color decorationBackgroundColor)
        Sets the background of days and weeks of year buttons.
        Parameters:
        decorationBackgroundColor - The background to set
      • getSundayForeground

        public java.awt.Color getSundayForeground()
        Returns the Sunday foreground.
        Returns:
        Color the Sunday foreground.
      • getWeekdayForeground

        public java.awt.Color getWeekdayForeground()
        Returns the weekday foreground.
        Returns:
        Color the weekday foreground.
      • setSundayForeground

        public void setSundayForeground​(java.awt.Color sundayForeground)
        Sets the Sunday foreground.
        Parameters:
        sundayForeground - The sundayForeground to set
      • setWeekdayForeground

        public void setWeekdayForeground​(java.awt.Color weekdayForeground)
        Sets the weekday foreground.
        Parameters:
        weekdayForeground - The weekdayForeground to set
      • setFocus

        public void setFocus()
        Requests that the selected day also have the focus.
      • isDecorationBackgroundVisible

        public boolean isDecorationBackgroundVisible()
        The decoration background is the background color of the day titles and the weeks of the year.
        Returns:
        Returns true, if the decoration background is painted.
      • setDecorationBackgroundVisible

        public void setDecorationBackgroundVisible​(boolean decorationBackgroundVisible)
        The decoration background is the background color of the day titles and the weeks of the year.
        Parameters:
        decorationBackgroundVisible - true, if the decoration background shall be painted.
      • isDecorationBordersVisible

        public boolean isDecorationBordersVisible()
        The decoration border is the button border of the day titles and the weeks of the year.
        Returns:
        Returns true, if the decoration border is painted.
      • isDayBordersVisible

        public boolean isDayBordersVisible()
      • setDecorationBordersVisible

        public void setDecorationBordersVisible​(boolean decorationBordersVisible)
        The decoration border is the button border of the day titles and the weeks of the year.
        Parameters:
        decorationBordersVisible - true, if the decoration border shall be painted.
      • setDayBordersVisible

        public void setDayBordersVisible​(boolean dayBordersVisible)
      • updateUI

        public void updateUI()
        Updates the UI and sets the day button preferences.
        Overrides:
        updateUI in class javax.swing.JPanel
      • 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 java.util.Date setMaxSelectableDate​(java.util.Date max)
        Sets the maximum selectable date. If null, the date 01\01\9999 will be set instead.
        Parameters:
        max - the maximum selectable date
        Returns:
        the maximum selectable date
      • setMinSelectableDate

        public java.util.Date setMinSelectableDate​(java.util.Date min)
        Sets the minimum selectable date. If null, the date 01\01\0001 will be set instead.
        Parameters:
        min - the minimum selectable date
        Returns:
        the minimum selectable date
      • 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
      • getMaxDayCharacters

        public int getMaxDayCharacters()
        Gets the maximum number of characters of a day name or 0. If 0 is returned, dateFormatSymbols.getShortWeekdays() will be used.
        Returns:
        the maximum number of characters of a day name or 0.
      • setMaxDayCharacters

        public void setMaxDayCharacters​(int maxDayCharacters)
        Sets the maximum number of characters per day in the day bar. Valid values are 0-4. If set to 0, dateFormatSymbols.getShortWeekdays() will be used, otherwise theses strings will be reduced to the maximum number of characters.
        Parameters:
        maxDayCharacters - the maximum number of characters of a day name.
      • main

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