Package org.jfree.ui

Class DateChooserPanel

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

    public class DateChooserPanel
    extends javax.swing.JPanel
    implements java.awt.event.ActionListener
    A panel that allows the user to select a date.
    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
      private javax.swing.JButton[] buttons
      An array of buttons used to display the days-of-the-month.
      private java.util.Calendar chosenDate
      The date selected in the panel.
      private java.awt.Color chosenDateButtonColor
      The color for the selected date.
      private java.awt.Color chosenMonthButtonColor
      The color for dates in the current month.
      private java.awt.Color chosenOtherButtonColor
      The color for dates that are visible, but not in the current month.
      private java.awt.Font dateFont
      The font used to display the date.
      private int firstDayOfWeek
      The first day-of-the-week.
      private javax.swing.JComboBox monthSelector
      A combo for selecting the month.
      private boolean refreshing
      A flag that indicates whether or not we are currently refreshing the buttons.
      private javax.swing.JButton todayButton
      A button for selecting today's date.
      private int[] WEEK_DAYS
      The ordered set of all seven days of a week, beginning with the 'firstDayOfWeek'.
      private int yearSelectionRange
      The range used for selecting years.
      private javax.swing.JComboBox yearSelector
      A combo for selecting the year.
      • 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
      DateChooserPanel()
      Constructs a new date chooser panel, using today's date as the initial selection.
      DateChooserPanel​(java.util.Calendar calendar, boolean controlPanel)
      Constructs a new date chooser panel.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void actionPerformed​(java.awt.event.ActionEvent e)
      Handles action-events from the date panel.
      private javax.swing.JPanel constructControlPanel()
      Returns a panel that appears at the bottom of the calendar panel - contains a button for selecting today's date.
      private javax.swing.JPanel constructSelectionPanel()
      Constructs a panel containing two JComboBoxes (for the month and year) and a button (to reset the date to TODAY).
      private boolean equalDates​(java.util.Calendar c1, java.util.Calendar c2)
      Returns true if the two dates are equal (time of day is ignored).
      private java.awt.Color getButtonColor​(java.util.Calendar theDate)
      Returns the button color according to the specified date.
      private javax.swing.JPanel getCalendarPanel()
      Returns a panel of buttons, each button representing a day in the month.
      java.awt.Color getChosenDateButtonColor()
      Returns the color for the currently selected date.
      java.awt.Color getChosenMonthButtonColor()
      Returns the color for the buttons representing the current month.
      java.awt.Color getChosenOtherButtonColor()
      Returns the color for the buttons representing the other months.
      java.util.Date getDate()
      Returns the date selected in the panel.
      private int getFirstDayOfWeek()
      Returns the first day of the week (controls the labels in the date panel).
      private java.util.Calendar getFirstVisibleDate()
      Returns the first date that is visible in the grid.
      private java.lang.Integer[] getYears​(int chosenYear)
      Returns a vector of years preceding and following the specified year.
      int getYearSelectionRange()
      Returns the range of years available for selection (defaults to 20).
      private void refreshButtons()
      Update the button labels and colors to reflect date selection.
      private void refreshYearSelector()
      Changes the contents of the year selection JComboBox to reflect the chosen date and the year range.
      void setChosenDateButtonColor​(java.awt.Color chosenDateButtonColor)
      Redefines the color for the currently selected date.
      void setChosenMonthButtonColor​(java.awt.Color chosenMonthButtonColor)
      Defines the color for the buttons representing the current month.
      void setChosenOtherButtonColor​(java.awt.Color chosenOtherButtonColor)
      Redefines the color for the buttons representing the other months.
      void setDate​(java.util.Date theDate)
      Sets the date chosen in the panel.
      void setYearSelectionRange​(int yearSelectionRange)
      Sets the range of years available for selection.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • 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, setEnabled, setFocusTraversalKeys, setFont, 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, 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, setLocale, 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

      • chosenDate

        private java.util.Calendar chosenDate
        The date selected in the panel.
      • chosenDateButtonColor

        private java.awt.Color chosenDateButtonColor
        The color for the selected date.
      • chosenMonthButtonColor

        private java.awt.Color chosenMonthButtonColor
        The color for dates in the current month.
      • chosenOtherButtonColor

        private java.awt.Color chosenOtherButtonColor
        The color for dates that are visible, but not in the current month.
      • firstDayOfWeek

        private int firstDayOfWeek
        The first day-of-the-week.
      • yearSelectionRange

        private int yearSelectionRange
        The range used for selecting years.
      • dateFont

        private java.awt.Font dateFont
        The font used to display the date.
      • monthSelector

        private javax.swing.JComboBox monthSelector
        A combo for selecting the month.
      • yearSelector

        private javax.swing.JComboBox yearSelector
        A combo for selecting the year.
      • todayButton

        private javax.swing.JButton todayButton
        A button for selecting today's date.
      • buttons

        private javax.swing.JButton[] buttons
        An array of buttons used to display the days-of-the-month.
      • refreshing

        private boolean refreshing
        A flag that indicates whether or not we are currently refreshing the buttons.
      • WEEK_DAYS

        private int[] WEEK_DAYS
        The ordered set of all seven days of a week, beginning with the 'firstDayOfWeek'.
    • Constructor Detail

      • DateChooserPanel

        public DateChooserPanel()
        Constructs a new date chooser panel, using today's date as the initial selection.
      • DateChooserPanel

        public DateChooserPanel​(java.util.Calendar calendar,
                                boolean controlPanel)
        Constructs a new date chooser panel.
        Parameters:
        calendar - the calendar controlling the date.
        controlPanel - a flag that indicates whether or not the 'today' button should appear on the panel.
    • Method Detail

      • setDate

        public void setDate​(java.util.Date theDate)
        Sets the date chosen in the panel.
        Parameters:
        theDate - the new date.
      • getDate

        public java.util.Date getDate()
        Returns the date selected in the panel.
        Returns:
        the selected date.
      • actionPerformed

        public void actionPerformed​(java.awt.event.ActionEvent e)
        Handles action-events from the date panel.
        Specified by:
        actionPerformed in interface java.awt.event.ActionListener
        Parameters:
        e - information about the event that occurred.
      • getCalendarPanel

        private javax.swing.JPanel getCalendarPanel()
        Returns a panel of buttons, each button representing a day in the month. This is a sub-component of the DatePanel.
        Returns:
        the panel.
      • getButtonColor

        private java.awt.Color getButtonColor​(java.util.Calendar theDate)
        Returns the button color according to the specified date.
        Parameters:
        theDate - the date.
        Returns:
        the color.
      • equalDates

        private boolean equalDates​(java.util.Calendar c1,
                                   java.util.Calendar c2)
        Returns true if the two dates are equal (time of day is ignored).
        Parameters:
        c1 - the first date.
        c2 - the second date.
        Returns:
        boolean.
      • getFirstVisibleDate

        private java.util.Calendar getFirstVisibleDate()
        Returns the first date that is visible in the grid. This should always be in the month preceding the month of the selected date.
        Returns:
        the date.
      • getFirstDayOfWeek

        private int getFirstDayOfWeek()
        Returns the first day of the week (controls the labels in the date panel).
        Returns:
        the first day of the week.
      • refreshButtons

        private void refreshButtons()
        Update the button labels and colors to reflect date selection.
      • refreshYearSelector

        private void refreshYearSelector()
        Changes the contents of the year selection JComboBox to reflect the chosen date and the year range.
      • getYears

        private java.lang.Integer[] getYears​(int chosenYear)
        Returns a vector of years preceding and following the specified year. The number of years preceding and following is determined by the yearSelectionRange attribute.
        Parameters:
        chosenYear - the selected year.
        Returns:
        a vector of years.
      • constructSelectionPanel

        private javax.swing.JPanel constructSelectionPanel()
        Constructs a panel containing two JComboBoxes (for the month and year) and a button (to reset the date to TODAY).
        Returns:
        the panel.
      • constructControlPanel

        private javax.swing.JPanel constructControlPanel()
        Returns a panel that appears at the bottom of the calendar panel - contains a button for selecting today's date.
        Returns:
        the panel.
      • getChosenDateButtonColor

        public java.awt.Color getChosenDateButtonColor()
        Returns the color for the currently selected date.
        Returns:
        a color.
      • setChosenDateButtonColor

        public void setChosenDateButtonColor​(java.awt.Color chosenDateButtonColor)
        Redefines the color for the currently selected date.
        Parameters:
        chosenDateButtonColor - the new color
      • getChosenMonthButtonColor

        public java.awt.Color getChosenMonthButtonColor()
        Returns the color for the buttons representing the current month.
        Returns:
        the color for the current month.
      • setChosenMonthButtonColor

        public void setChosenMonthButtonColor​(java.awt.Color chosenMonthButtonColor)
        Defines the color for the buttons representing the current month.
        Parameters:
        chosenMonthButtonColor - the color for the current month.
      • getChosenOtherButtonColor

        public java.awt.Color getChosenOtherButtonColor()
        Returns the color for the buttons representing the other months.
        Returns:
        a color.
      • setChosenOtherButtonColor

        public void setChosenOtherButtonColor​(java.awt.Color chosenOtherButtonColor)
        Redefines the color for the buttons representing the other months.
        Parameters:
        chosenOtherButtonColor - a color.
      • getYearSelectionRange

        public int getYearSelectionRange()
        Returns the range of years available for selection (defaults to 20).
        Returns:
        The range.
      • setYearSelectionRange

        public void setYearSelectionRange​(int yearSelectionRange)
        Sets the range of years available for selection.
        Parameters:
        yearSelectionRange - the range.