|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
org.jdesktop.swingx.calendar.JXMonthView
public class JXMonthView
Component that displays a month calendar which can be used to select a day
or range of days. By default the JXMonthView
will display a
single calendar using the current month and year, using
Calendar.SUNDAY
as the first day of the week.
The JXMonthView
can be configured to display more than one
calendar at a time by calling
setPreferredCalCols
/setPreferredCalRows
. These
methods will set the preferred number of calendars to use in each
column/row. As these values change, the Dimension
returned
from getMinimumSize
and getPreferredSize
will
be updated. The following example shows how to create a 2x2 view which is
contained within a JFrame
:
JXMonthView monthView = new JXMonthView(); monthView.setPreferredCols(2); monthView.setPreferredRows(2); JFrame frame = new JFrame(); frame.getContentPane().add(monthView); frame.pack(); frame.setVisible(true);
JXMonthView
can be further configured to allow any day of the
week to be considered the first day of the week. Character
representation of those days may also be set by providing an array of
strings.
monthView.setFirstDayOfWeek(Calendar.MONDAY); monthView.setDaysOfTheWeek( new String[]{"S", "M", "T", "W", "Th", "F", "S"});
This component supports flagging days. These flagged days are displayed in a bold font. This can be used to inform the user of such things as scheduled appointment.
// Create some dates that we want to flag as being important. Calendar cal1 = Calendar.getInstance(); cal1.set(2004, 1, 1); Calendar cal2 = Calendar.getInstance(); cal2.set(2004, 1, 5); long[] flaggedDates = new long[] { cal1.getTimeInMillis(), cal2.getTimeInMillis(), System.currentTimeMillis() }; monthView.setFlaggedDates(flaggedDates);Applications may have the need to allow users to select different ranges of dates. There are four modes of selection that are supported, single, multiple, week and no selection. Once a selection is made an action is fired, with exception of the no selection mode, to inform listeners that selection has changed.
// Change the selection mode to select full weeks. monthView.setSelectionMode(JXMonthView.WEEK_INTERVAL_SELECTION); // Add an action listener that will be notified when the user // changes selection via the mouse. monthView.getSelectionModel().addDateSelectionListener(new DateSelectionListener { public void valueChanged(DateSelectionEvent e) { System.out.println(e.getSelection()); } });
Nested Class Summary | |
---|---|
static class |
JXMonthView.SelectionMode
|
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
Field Summary | |
---|---|
protected Insets |
_monthStringInsets
Insets used in determining the rectangle for the month string background. |
static String |
BOX_PADDING_X
|
static String |
BOX_PADDING_Y
|
static int |
DAYS_IN_WEEK
|
static String |
DAYS_OF_THE_WEEK
|
static String |
ENSURE_DATE_VISIBILITY
|
static String |
FIRST_DISPLAYED_DATE
|
static String |
FIRST_DISPLAYED_MONTH
|
static String |
FIRST_DISPLAYED_YEAR
|
static String |
FLAGGED_DATES
|
static int |
MONTH_DOWN
Return value used to identify when the month down button is pressed. |
static int |
MONTH_UP
Return value used to identify when the month up button is pressed. |
static int |
MONTHS_IN_YEAR
|
static String |
SELECTION_MODEL
|
static String |
SHOW_LEADING_DATES
|
static String |
SHOW_TRAILING_DATES
|
static String |
TRAVERSABLE
|
static String |
uiClassID
UI Class ID |
static String |
WEEK_NUMBER
|
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, 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 |
---|
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 | |
---|---|
JXMonthView()
Create a new instance of the JXMonthView class using the
month and year of the current day as the first date to display. |
|
JXMonthView(long firstDisplayedDate)
Create a new instance of the JXMonthView class using the
month and year from initialTime as the first date to
display. |
|
JXMonthView(long firstDisplayedDate,
DateSelectionModel model)
|
Method Summary | ||
---|---|---|
void |
addActionListener(ActionListener l)
Adds an ActionListener. |
|
void |
addNotify()
Notifies this component that it now has a parent component. |
|
void |
addSelectionInterval(Date startDate,
Date endDate)
Adds the selection interval to the selection model. |
|
void |
clearSelection()
|
|
void |
ensureDateVisible(long date)
Moves the date into the visible region of the calendar. |
|
protected void |
fireActionPerformed()
Fires an ActionEvent to all listeners. |
|
String |
getActionCommand()
Returns the string currently used to identiy fired ActionEvents. |
|
int |
getBoxPaddingX()
Returns the padding used between days in the calendar. |
|
int |
getBoxPaddingY()
Returns the padding used above and below days in the calendar. |
|
Calendar |
getCalendar()
|
|
long |
getDayAt(int x,
int y)
Return a long representing the date at the specified x/y position. |
|
Color |
getDayForeground(int dayOfWeek)
Return the color that should be used for painting the numerical day of the week. |
|
String[] |
getDaysOfTheWeek()
Returns the single character representation for each day of the week. |
|
Color |
getDaysOfTheWeekForeground()
|
|
int |
getFirstDayOfWeek()
Gets what the first day of the week is; e.g., Calendar.SUNDAY in the U.S., Calendar.MONDAY
in France. |
|
long |
getFirstDisplayedDate()
Returns the first displayed date. |
|
Color |
getFlaggedDayForeground()
Return the color that should be used for painting the foreground of the flagged day. |
|
long |
getLastDisplayedDate()
Returns the last date able to be displayed. |
|
|
getListeners(Class<T> listenerType)
Returns an array of all the objects currently registered as FooListener s
upon this JComponent . |
|
Color |
getMonthStringBackground()
Returns the color used to paint the month string background. |
|
Color |
getMonthStringForeground()
Returns the color used to paint the month string foreground. |
|
Insets |
getMonthStringInsets()
Returns a copy of the insets used to paint the month string background. |
|
int |
getPreferredCols()
Returns the preferred number of columns to paint calendars in. |
|
int |
getPreferredRows()
Returns the preferred number of rows to paint calendars in. |
|
Color |
getSelectedBackground()
Returns the selected background color. |
|
DateSpan |
getSelectedDateSpan()
Deprecated. see #getSelection |
|
SortedSet<Date> |
getSelection()
|
|
JXMonthView.SelectionMode |
getSelectionMode()
Returns the current selection mode for this JXMonthView. |
|
DateSelectionModel |
getSelectionModel()
|
|
TimeZone |
getTimeZone()
Gets the time zone. |
|
Color |
getTodayBackground()
Returns the color used when painting the today background. |
|
MonthViewUI |
getUI()
|
|
String |
getUIClassID()
Returns the UIDefaults key used to
look up the name of the swing.plaf.ComponentUI
class that defines the look and feel
for this component. |
|
boolean |
isAntialiased()
Returns true if anti-aliased text is enabled for this component, false otherwise. |
|
boolean |
isFlaggedDate(long date)
Identifies whether or not the date passed is a flagged date. |
|
boolean |
isSelectedDate(long date)
Returns true if the specified date falls within the _startSelectedDate and _endSelectedDate range. |
|
boolean |
isShowingLeadingDates()
Whether or not we're showing leading dates. |
|
boolean |
isShowingTrailingDates()
Whether or not we're showing trailing dates. |
|
boolean |
isShowingWeekNumber()
Returns whether or not this JXMonthView should display
week number. |
|
boolean |
isTraversable()
Returns whether or not the month view supports traversing months. |
|
boolean |
isUnselectableDate(long date)
Identifies whether or not the date passed is an unselectable date. |
|
static void |
main(String[] args)
|
|
void |
postActionEvent()
|
|
void |
removeActionListener(ActionListener l)
Removes an ActionListener. |
|
void |
removeNotify()
Notifies this component that it no longer has a parent component. |
|
void |
removeSelectionInterval(Date startDate,
Date endDate)
Removes the selection interval from the selection model. |
|
void |
setActionCommand(String actionCommand)
Sets the string used to identify fired ActionEvents. |
|
void |
setAntialiased(boolean antiAlias)
Turns on/off anti-aliased text for this component. |
|
void |
setBounds(Rectangle r)
Moves and resizes this component to conform to the new bounding rectangle r. |
|
void |
setBoxPaddingX(int boxPaddingX)
Sets the number of pixels used to pad the left and right side of a day. |
|
void |
setBoxPaddingY(int boxPaddingY)
Sets the number of pixels used to pad the top and bottom of a day. |
|
void |
setDayForeground(int dayOfWeek,
Color c)
Set the color to be used for painting the specified day of the week. |
|
void |
setDaysOfTheWeek(String[] days)
Sets the single character representation for each day of the week. |
|
void |
setDaysOfTheWeekForeground(Color c)
Sets the color used to draw the foreground of each day of the week. |
|
void |
setFirstDayOfWeek(int firstDayOfWeek)
Sets what the first day of the week is; e.g., Calendar.SUNDAY in US, Calendar.MONDAY
in France. |
|
void |
setFirstDisplayedDate(long date)
Set the first displayed date. |
|
void |
setFlaggedDates(long[] flaggedDates)
An array of longs defining days that should be flagged. |
|
void |
setFlaggedDayForeground(Color c)
Set the color to be used for painting the foreground of a flagged day. |
|
void |
setFont(Font font)
Sets the font of this component. |
|
void |
setMonthStringBackground(Color c)
Sets the color used to draw the background of the month string. |
|
void |
setMonthStringForeground(Color c)
Sets the color used to draw the foreground of the month string. |
|
void |
setMonthStringInsets(Insets insets)
Insets used to modify the width/height when painting the background of the month string area. |
|
void |
setPreferredCols(int cols)
The preferred number of columns to paint calendars. |
|
void |
setPreferredRows(int rows)
Sets the preferred number of rows to paint calendars. |
|
void |
setSelectedBackground(Color c)
Sets the selected background color to c . |
|
void |
setSelectedDateSpan(DateSpan dateSpan)
Deprecated. see #setSelectionInterval |
|
void |
setSelectionInterval(Date startDate,
Date endDate)
Sets the selection interval to the selection model. |
|
void |
setSelectionMode(JXMonthView.SelectionMode selectionMode)
Set the selection mode for this JXMonthView. |
|
void |
setSelectionModel(DateSelectionModel model)
|
|
void |
setShowingWeekNumber(boolean showWeekNumber)
Set whether or not this JXMonthView will display week
numbers or not. |
|
void |
setShowLeadingDates(boolean value)
Whether or not to show leading dates for a months displayed by this component. |
|
void |
setShowTrailingDates(boolean value)
Whether or not to show trailing dates for the months displayed by this component. |
|
void |
setTimeZone(TimeZone tz)
Sets the time zone with the given time zone value. |
|
void |
setTodayBackground(Color c)
Sets the color used to draw the bounding box around today. |
|
void |
setTraversable(boolean traversable)
Set whether or not the month view will display buttons to allow the user to traverse to previous or next months. |
|
void |
setUI(MonthViewUI ui)
Sets the L&F object that renders this component. |
|
void |
setUnselectableDates(long[] unselectableDates)
An array of longs defining days that should be unselectable. |
|
void |
updateUI()
Resets the UI property with the value from the current look and feel. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final String BOX_PADDING_X
public static final String BOX_PADDING_Y
public static final String DAYS_OF_THE_WEEK
public static final String ENSURE_DATE_VISIBILITY
public static final String FIRST_DISPLAYED_DATE
public static final String FIRST_DISPLAYED_MONTH
public static final String FIRST_DISPLAYED_YEAR
public static final String SELECTION_MODEL
public static final String SHOW_LEADING_DATES
public static final String SHOW_TRAILING_DATES
public static final String TRAVERSABLE
public static final String WEEK_NUMBER
public static final String FLAGGED_DATES
public static final int MONTH_DOWN
public static final int MONTH_UP
public static final String uiClassID
public static final int DAYS_IN_WEEK
public static final int MONTHS_IN_YEAR
protected Insets _monthStringInsets
Constructor Detail |
---|
public JXMonthView()
JXMonthView
class using the
month and year of the current day as the first date to display.
public JXMonthView(long firstDisplayedDate)
JXMonthView
class using the
month and year from initialTime
as the first date to
display.
firstDisplayedDate
- The first month to display.public JXMonthView(long firstDisplayedDate, DateSelectionModel model)
Method Detail |
---|
public MonthViewUI getUI()
public void setUI(MonthViewUI ui)
ui
- UI to use for this JXMonthView
public void updateUI()
updateUI
in class JComponent
UIManager.getUI(javax.swing.JComponent)
public String getUIClassID()
javax.swing.JComponent
UIDefaults
key used to
look up the name of the swing.plaf.ComponentUI
class that defines the look and feel
for this component. Most applications will never need to
call this method. Subclasses of JComponent
that support
pluggable look and feel should override this method to
return a UIDefaults
key that maps to the
ComponentUI
subclass that defines their look and feel.
getUIClassID
in class JComponent
UIDefaults
key for a
ComponentUI
subclassUIDefaults.getUI(javax.swing.JComponent)
public long getFirstDisplayedDate()
public void setFirstDisplayedDate(long date)
Calendar.DAY_OF_MONTH
field is reset to
1 and all other fields, with exception of the year and month,
are reset to 0.
date
- The first displayed date.public long getLastDisplayedDate()
public void ensureDateVisible(long date)
date
into the visible region of the calendar.
If the date is greater than the last visible date it will become the
last visible date. While if it is less than the first visible date
it will become the first visible date.
date
- Date to make visible.@Deprecated public DateSpan getSelectedDateSpan()
@Deprecated public void setSelectedDateSpan(DateSpan dateSpan)
dateSpan
- DateSpan defining the selected dates. Passing
null
will clear the selection.public void clearSelection()
public SortedSet<Date> getSelection()
public void addSelectionInterval(Date startDate, Date endDate)
startDate
- Start of date range to add to the selectionendDate
- End of date range to add to the selectionpublic void setSelectionInterval(Date startDate, Date endDate)
startDate
- Start of date range to set the selection toendDate
- End of date range to set the selection topublic void removeSelectionInterval(Date startDate, Date endDate)
startDate
- Start of the date range to remove from the selectionendDate
- End of the date range to remove from the selectionpublic DateSelectionModel getSelectionModel()
public void setSelectionModel(DateSelectionModel model)
public JXMonthView.SelectionMode getSelectionMode()
public void setSelectionMode(JXMonthView.SelectionMode selectionMode)
selectionMode
- The selection mode to use for this JXMonthView
public boolean isSelectedDate(long date)
date
- The date to check
public boolean isUnselectableDate(long date)
date
- date which to test for unselectable status
public boolean isFlaggedDate(long date)
date
- date which to test for flagged status
public void setFlaggedDates(long[] flaggedDates)
flaggedDates
- the dates to be flaggedpublic void setUnselectableDates(long[] unselectableDates)
unselectableDates
- the dates that should be unselectablepublic void setShowLeadingDates(boolean value)
value
- true if leading dates should be displayed, false otherwise.public boolean isShowingLeadingDates()
public void setShowTrailingDates(boolean value)
value
- true if trailing dates should be displayed, false otherwise.public boolean isShowingTrailingDates()
public int getBoxPaddingX()
public void setBoxPaddingX(int boxPaddingX)
boxPaddingX
- Number of pixels applied to both sides of a daypublic int getBoxPaddingY()
public void setBoxPaddingY(int boxPaddingY)
boxPaddingY
- Number of pixels applied to top and bottom of a daypublic boolean isTraversable()
true
if month traversing is enabled.public void setTraversable(boolean traversable)
traversable
- set to true to enable month traversing,
false otherwise.public boolean isShowingWeekNumber()
JXMonthView
should display
week number.
true
if week numbers should be displayedpublic void setShowingWeekNumber(boolean showWeekNumber)
JXMonthView
will display week
numbers or not.
showWeekNumber
- true if week numbers should be displayed,
false otherwisepublic void setDaysOfTheWeek(String[] days) throws IllegalArgumentException, NullPointerException
Calendar.SUNDAY
.
days
- Array of characters that represents each day
IllegalArgumentException
- if days.length
!= DAYS_IN_WEEK
NullPointerException
- if days
== nullpublic String[] getDaysOfTheWeek()
public int getFirstDayOfWeek()
Calendar.SUNDAY
in the U.S., Calendar.MONDAY
in France.
public void setFirstDayOfWeek(int firstDayOfWeek)
Calendar.SUNDAY
in US, Calendar.MONDAY
in France.
firstDayOfWeek
- The first day of the week.Calendar
public TimeZone getTimeZone()
TimeZone
used by the JXMonthView
.public void setTimeZone(TimeZone tz)
tz
- The TimeZone
.public boolean isAntialiased()
true
if anti-aliased text is enabled,
false
otherwise.public void setAntialiased(boolean antiAlias)
antiAlias
- true
for anti-aliased text,
false
to turn it off.public Color getSelectedBackground()
public void setSelectedBackground(Color c)
c
. The default color
is 138, 173, 209 (Blue-ish)
c
- Selected background.public Color getTodayBackground()
public void setTodayBackground(Color c)
JXMonthView
component.
c
- color to setpublic Color getMonthStringBackground()
public void setMonthStringBackground(Color c)
138, 173, 209 (Blue-ish)
.
c
- color to setpublic Color getMonthStringForeground()
public void setMonthStringForeground(Color c)
Color.WHITE
.
c
- color to setpublic void setDaysOfTheWeekForeground(Color c)
c
- color to setpublic Color getDaysOfTheWeekForeground()
public void setDayForeground(int dayOfWeek, Color c)
dayOfWeek
- constant value defining the day of the week.c
- The color to be used for painting the numeric day of the week.public Color getDayForeground(int dayOfWeek)
dayOfWeek
- The day of week to get the color for.
public void setFlaggedDayForeground(Color c)
c
- The color to be used for painting.public Color getFlaggedDayForeground()
public Insets getMonthStringInsets()
public void setMonthStringInsets(Insets insets)
insets
- Insetspublic int getPreferredCols()
public void setPreferredCols(int cols)
cols
- The number of columns of calendars.public int getPreferredRows()
public void setPreferredRows(int rows)
rows
- The number of rows of calendars.public void setBounds(Rectangle r)
setBounds
in class Component
r
- The new bounding rectangle for this componentComponent.getBounds()
,
Component.setLocation(int, int)
,
Component.setLocation(Point)
,
Component.setSize(int, int)
,
Component.setSize(Dimension)
public void setFont(Font font)
setFont
in class JComponent
font
- The font to become this component's font; if this parameter
is null then this component will inherit the font of its parent.Component.getFont()
public void removeNotify()
KeyboardAction
s
set up in the the chain of parent components are removed.
removeNotify
in class JComponent
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public void addNotify()
KeyboardAction
event listeners.
addNotify
in class JComponent
JComponent.registerKeyboardAction(java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int)
public Calendar getCalendar()
public long getDayAt(int x, int y)
x
- X positiony
- Y position
public String getActionCommand()
public void setActionCommand(String actionCommand)
actionCommand
- The string used for identifying ActionEvents.public void addActionListener(ActionListener l)
l
- The ActionListener that is to be notifiedpublic void removeActionListener(ActionListener l)
l
- The action listener to remove.public <T extends EventListener> T[] getListeners(Class<T> listenerType)
javax.swing.JComponent
FooListener
s
upon this JComponent
.
FooListener
s are registered using the
addFooListener
method.
You can specify the listenerType
argument
with a class literal,
such as
FooListener.class
.
For example, you can query a
JComponent
c
for its mouse listeners with the following code:
MouseListener[] mls = (MouseListener[])(c.getListeners(MouseListener.class));If no such listeners exist, this method returns an empty array.
getListeners
in class JComponent
listenerType
- the type of listeners requested; this parameter
should specify an interface that descends from
java.util.EventListener
FooListener
s on this component,
or an empty array if no such
listeners have been addedJComponent.getVetoableChangeListeners()
,
JComponent.getAncestorListeners()
protected void fireActionPerformed()
public void postActionEvent()
public static void main(String[] args)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |