com.toedter.calendar

Class JDayChooser

Implemented Interfaces:
ActionListener, FocusListener, KeyListener

public class JDayChooser
extends JPanel
implements ActionListener, KeyListener, 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

Field Summary

protected Calendar
calendar
protected int
day
protected boolean
dayBordersVisible
protected String[]
dayNames
protected JPanel
dayPanel
protected JButton[]
days
protected Color
decorationBackgroundColor
protected boolean
decorationBackgroundVisible
protected boolean
decorationBordersVisible
protected Date
defaultMaxSelectableDate
protected Date
defaultMinSelectableDate
protected boolean
initialized
protected Locale
locale
protected int
maxDayCharacters
protected Date
maxSelectableDate
protected Date
minSelectableDate
protected Color
oldDayBackgroundColor
protected Color
selectedColor
protected JButton
selectedDay
protected Color
sundayForeground
protected Calendar
today
protected boolean
weekOfYearVisible
protected JPanel
weekPanel
protected Color
weekdayForeground
protected JButton[]
weeks

Constructor Summary

JDayChooser()
Default JDayChooser constructor.
JDayChooser(boolean weekOfYearVisible)
JDayChooser constructor.

Method Summary

void
actionPerformed(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(FocusEvent e)
JDayChooser is the FocusListener for all day buttons.
void
focusLost(FocusEvent e)
Does nothing.
int
getDay()
Returns the selected day.
JPanel
getDayPanel()
Returns the day panel.
Color
getDecorationBackgroundColor()
Returns the color of the decoration (day names and weeks).
Locale
getLocale()
Returns the locale.
int
getMaxDayCharacters()
Gets the maximum number of characters of a day name or 0.
Date
getMaxSelectableDate()
Gets the maximum selectable date.
Date
getMinSelectableDate()
Gets the minimum selectable date.
Color
getSundayForeground()
Returns the Sunday foreground.
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(KeyEvent e)
JDayChooser is the KeyListener for all day buttons.
void
keyReleased(KeyEvent e)
Does nothing.
void
keyTyped(KeyEvent e)
Does nothing.
static void
main(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(Calendar calendar)
Sets a specific calendar.
void
setDay(int d)
Sets the day.
void
setDayBordersVisible(boolean dayBordersVisible)
void
setDecorationBackgroundColor(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(Font font)
Sets the font property.
void
setForeground(Color foreground)
Sets the foregroundColor color.
void
setLocale(Locale locale)
Sets the locale.
void
setMaxDayCharacters(int maxDayCharacters)
Sets the maximum number of characters per day in the day bar.
Date
setMaxSelectableDate(Date max)
Sets the maximum selectable date.
Date
setMinSelectableDate(Date min)
Sets the minimum selectable date.
void
setMonth(int month)
Sets a specific month.
void
setSelectableDateRange(Date min, Date max)
Sets a valid date range for selectable dates.
void
setSundayForeground(Color sundayForeground)
Sets the Sunday foreground.
void
setWeekOfYearVisible(boolean weekOfYearVisible)
In some Countries it is often usefull to know in which week of the year a date is.
void
setWeekdayForeground(Color weekdayForeground)
Sets the weekday foreground.
void
setYear(int year)
Sets a specific year.
void
updateUI()
Updates the UI and sets the day button preferences.

Field Details

calendar

protected Calendar calendar

day

protected int day

dayBordersVisible

protected boolean dayBordersVisible

dayNames

protected String[] dayNames

dayPanel

protected JPanel dayPanel

days

protected JButton[] days

decorationBackgroundColor

protected Color decorationBackgroundColor

decorationBackgroundVisible

protected boolean decorationBackgroundVisible

decorationBordersVisible

protected boolean decorationBordersVisible

defaultMaxSelectableDate

protected Date defaultMaxSelectableDate

defaultMinSelectableDate

protected Date defaultMinSelectableDate

initialized

protected boolean initialized

locale

protected Locale locale

maxDayCharacters

protected int maxDayCharacters

maxSelectableDate

protected Date maxSelectableDate

minSelectableDate

protected Date minSelectableDate

oldDayBackgroundColor

protected Color oldDayBackgroundColor

selectedColor

protected Color selectedColor

selectedDay

protected JButton selectedDay

sundayForeground

protected Color sundayForeground

today

protected Calendar today

weekOfYearVisible

protected boolean weekOfYearVisible

weekPanel

protected JPanel weekPanel

weekdayForeground

protected Color weekdayForeground

weeks

protected JButton[] weeks

Constructor Details

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 Details

actionPerformed

public void actionPerformed(ActionEvent e)
JDayChooser is the ActionListener for all day buttons.
Parameters:
e - the ActionEvent

drawDays

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

drawWeeks

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

focusGained

public void focusGained(FocusEvent e)
JDayChooser is the FocusListener for all day buttons. (Added by Thomas Schaefer)
Parameters:
e - the FocusEvent

focusLost

public void focusLost(FocusEvent e)
Does nothing.
Parameters:
e - the FocusEvent

getDay

public int getDay()
Returns the selected day.
Returns:
the day value

getDayPanel

public JPanel getDayPanel()
Returns the day panel.
Returns:
the day panel

getDecorationBackgroundColor

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

getLocale

public Locale getLocale()
Returns the locale.
Returns:
the locale value

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.

getMaxSelectableDate

public Date getMaxSelectableDate()
Gets the maximum selectable date.
Returns:
the maximum selectable date

getMinSelectableDate

public Date getMinSelectableDate()
Gets the minimum selectable date.
Returns:
the minimum selectable date

getSundayForeground

public Color getSundayForeground()
Returns the Sunday foreground.
Returns:
Color the Sunday foreground.

getWeekdayForeground

public Color getWeekdayForeground()
Returns the weekday foreground.
Returns:
Color the weekday foreground.

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.

isDayBordersVisible

public boolean isDayBordersVisible()

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.

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.

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

keyPressed

public void keyPressed(KeyEvent e)
JDayChooser is the KeyListener for all day buttons. (Added by Thomas Schaefer and modified by Austin Moore)
Parameters:
e - the KeyEvent

keyReleased

public void keyReleased(KeyEvent e)
Does nothing.
Parameters:
e - the KeyEvent

keyTyped

public void keyTyped(KeyEvent e)
Does nothing.
Parameters:
e - the KeyEvent

main

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

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.

setCalendar

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

setDay

public void setDay(int d)
Sets the day. This is a bound property.
Parameters:
d - the day

setDayBordersVisible

public void setDayBordersVisible(boolean dayBordersVisible)

setDecorationBackgroundColor

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

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.

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.

setEnabled

public void setEnabled(boolean enabled)
Enable or disable the JDayChooser.
Parameters:
enabled - The new enabled value

setFocus

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

setFont

public void setFont(Font font)
Sets the font property.
Parameters:
font - the new font

setForeground

public void setForeground(Color foreground)
Sets the foregroundColor color.
Parameters:
foreground - the new foregroundColor

setLocale

public void setLocale(Locale locale)
Sets the locale.
Parameters:
locale - the new locale value

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.

setMaxSelectableDate

public Date setMaxSelectableDate(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 Date setMinSelectableDate(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

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

setSelectableDateRange

public void setSelectableDateRange(Date min,
                                   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)

setSundayForeground

public void setSundayForeground(Color sundayForeground)
Sets the Sunday foreground.
Parameters:
sundayForeground - The sundayForeground to set

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

setWeekdayForeground

public void setWeekdayForeground(Color weekdayForeground)
Sets the weekday foreground.
Parameters:
weekdayForeground - The weekdayForeground to set

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

updateUI

public void updateUI()
Updates the UI and sets the day button preferences.

Copyright B) 1999 - 2009 Kai Toedter.