Package com.toedter.calendar
Class JDayChooser
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.toedter.calendar.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
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Calendar
calendar
protected int
day
protected boolean
dayBordersVisible
protected java.lang.String[]
dayNames
protected javax.swing.JPanel
dayPanel
protected javax.swing.JButton[]
days
protected java.awt.Color
decorationBackgroundColor
protected boolean
decorationBackgroundVisible
protected boolean
decorationBordersVisible
protected java.util.Date
defaultMaxSelectableDate
protected java.util.Date
defaultMinSelectableDate
protected boolean
initialized
protected java.util.Locale
locale
protected int
maxDayCharacters
protected java.util.Date
maxSelectableDate
protected java.util.Date
minSelectableDate
protected java.awt.Color
oldDayBackgroundColor
protected java.awt.Color
selectedColor
protected javax.swing.JButton
selectedDay
protected java.awt.Color
sundayForeground
protected java.util.Calendar
today
protected java.awt.Color
weekdayForeground
protected boolean
weekOfYearVisible
protected javax.swing.JPanel
weekPanel
protected javax.swing.JButton[]
weeks
-
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 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
-
-
-
-
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
-
-
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 classjava.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 classjava.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 classjavax.swing.JComponent
- Parameters:
font
- the new font
-
setForeground
public void setForeground(java.awt.Color foreground)
Sets the foregroundColor color.- Overrides:
setForeground
in classjavax.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 interfacejava.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 interfacejava.awt.event.FocusListener
- Parameters:
e
- the FocusEvent
-
focusLost
public void focusLost(java.awt.event.FocusEvent e)
Does nothing.- Specified by:
focusLost
in interfacejava.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 interfacejava.awt.event.KeyListener
- Parameters:
e
- the KeyEvent
-
keyTyped
public void keyTyped(java.awt.event.KeyEvent e)
Does nothing.- Specified by:
keyTyped
in interfacejava.awt.event.KeyListener
- Parameters:
e
- the KeyEvent
-
keyReleased
public void keyReleased(java.awt.event.KeyEvent e)
Does nothing.- Specified by:
keyReleased
in interfacejava.awt.event.KeyListener
- Parameters:
e
- the KeyEvent
-
setEnabled
public void setEnabled(boolean enabled)
Enable or disable the JDayChooser.- Overrides:
setEnabled
in classjavax.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 classjavax.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
-
-