Package org.jfree.ui
Class DateChooserPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.jfree.ui.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
-
-
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
-
-
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
-
-
-
-
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 interfacejava.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.
-
-