org.jdesktop.swingx.calendar
Class JXMonthView

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.jdesktop.swingx.calendar.JXMonthView
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class JXMonthView
extends javax.swing.JComponent

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_SELECTION);

    // Add an action listener that will be notified when the user
    // changes selection via the mouse.
    monthView.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            System.out.println(
                ((JXMonthView)e.getSource()).getSelectedDateSpan());
        }
    });
 

Version:
$Revision: 1.14 $
Author:
Joshua Outwater
See Also:
Serialized Form

Nested Class Summary
 
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.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
protected static java.text.SimpleDateFormat _dayOfMonthFormatter
          Formatter used to format the day of the week to a numerical value.
protected  java.awt.Insets _monthStringInsets
          Insets used in determining the rectangle for the month string background.
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 MULTIPLE_SELECTION
          Mode that allows for selecting of multiple consecutive days.
static int NO_SELECTION
          Mode that disallows selection of days from the calendar.
static int SINGLE_SELECTION
          Mode that allows for selection of a single day.
static int WEEK_SELECTION
          Mode where selections consisting of more than 7 days will snap to a full week.
 
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 initialTime)
          Create a new instance of the JXMonthView class using the month and year from initialTime as the first date to display.
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          Adds an ActionListener.
 void addNotify()
          
 void ensureDateVisible(long date)
          Moves the date into the visible region of the calendar.
protected  void fireActionPerformed()
          Fires an ActionEvent to all listeners.
 java.lang.String getActionCommand()
          Returns the string currently used to identiy fired ActionEvents.
 boolean getAntialiased()
          Returns true if anti-aliased text is enabled for this component, false otherwise.
 int getBoxPaddingX()
          Returns the padding used between days in the calendar.
 int getBoxPaddingY()
          Returns the padding used above and below days in the calendar.
 long getDayAt(int x, int y)
          Return a long representing the date at the specified x/y position.
 java.awt.Color getDayForeground(int dayOfWeek)
          Return the color that should be used for painting the numerical day of the week.
protected  int getDayOfTheWeek()
          Convenience method so subclasses can get the currently painted day's day of the week.
 java.lang.String[] getDaysOfTheWeek()
          Returns the single character representation for each day of the week.
 java.awt.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.
 long getLastDisplayedDate()
          Returns the last date able to be displayed.
 java.awt.Dimension getMaximumSize()
          Returns the maximum size of this component.
 java.awt.Dimension getMinimumSize()
          Returns the minimum size needed to display this component.
 java.awt.Color getMonthStringBackground()
          Returns the color used to paint the month string background.
 java.awt.Color getMonthStringForeground()
          Returns the color used to paint the month string foreground.
 java.awt.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.
 java.awt.Dimension getPreferredSize()
          Returns the preferred size of this component.
 java.awt.Color getSelectedBackground()
          Returns the selected background color.
 DateSpan getSelectedDateSpan()
          Returns a date span of the selected dates.
 int getSelectionMode()
          Returns the current selection mode for this JXMonthView.
 java.util.TimeZone getTimeZone()
          Gets the time zone.
 java.awt.Color getTodayBackground()
          Returns the color used when painting the today background.
 boolean getTraversable()
          Returns whether or not the month view supports traversing months.
protected  int getTraversableButtonAt(int x, int y)
          Returns an index defining which, if any, of the buttons for traversing the month was pressed.
protected  boolean isFlaggedDate(long date)
          Identifies whether or not the date passed is a flagged date.
protected  boolean isSelectedDate(long date)
          Returns true if the specified date falls within the _startSelectedDate and _endSelectedDate range.
protected  boolean isToday(long date)
          Returns true if the date passed in is the same as today.
protected  void paintComponent(java.awt.Graphics g)
          
protected  void paintDayBackground(java.awt.Graphics g, int x, int y, int width, int height, long date)
          Paint the background for the specified day.
protected  void paintDayForeground(java.awt.Graphics g, int x, int y, int width, int height, long date)
          Paint the foreground for the specified day.
protected  void paintMonthStringBackground(java.awt.Graphics g, int x, int y, int width, int height)
          Paints the background of the month string.
protected  void processMouseEvent(java.awt.event.MouseEvent e)
          
protected  void processMouseMotionEvent(java.awt.event.MouseEvent e)
          
 void removeActionListener(java.awt.event.ActionListener l)
          Removes an ActionListener.
 void removeNotify()
          
 void setActionCommand(java.lang.String actionCommand)
          Sets the string used to identify fired ActionEvents.
 void setAntialiased(boolean antiAlias)
          Turns on/off anti-aliased text for this component.
 void setBorder(javax.swing.border.Border border)
          Sets the border of this component.
 void setBounds(int x, int y, int width, int height)
          Moves and resizes this component.
 void setBounds(java.awt.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 setComponentOrientation(java.awt.ComponentOrientation o)
          Sets the language-sensitive orientation that is to be used to order the elements or text within this component.
 void setDayForeground(int dayOfWeek, java.awt.Color c)
          Set the color to be used for painting the specified day of the week.
 void setDaysOfTheWeek(java.lang.String[] days)
          Sets the single character representation for each day of the week.
 void setDaysOfTheWeekForeground(java.awt.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 setFont(java.awt.Font font)
          Sets the font of this component.
 void setMonthStringBackground(java.awt.Color c)
          Sets the color used to draw the background of the month string.
 void setMonthStringForeground(java.awt.Color c)
          Sets the color used to draw the foreground of the month string.
 void setMonthStringInsets(java.awt.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(java.awt.Color c)
          Sets the selected background color to c.
 void setSelectedDateSpan(DateSpan dateSpan)
          Selects the dates in the DateSpan.
 void setSelectionMode(int mode)
          Set the selection mode for this JXMonthView.
 void setTimeZone(java.util.TimeZone tz)
          Sets the time zone with the given time zone value.
 void setTodayBackground(java.awt.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 updateUI()
          Resets the UI property to a value from the current look and feel.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, transferFocusBackward, 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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_SELECTION

public static final int NO_SELECTION
Mode that disallows selection of days from the calendar.

See Also:
Constant Field Values

SINGLE_SELECTION

public static final int SINGLE_SELECTION
Mode that allows for selection of a single day.

See Also:
Constant Field Values

MULTIPLE_SELECTION

public static final int MULTIPLE_SELECTION
Mode that allows for selecting of multiple consecutive days.

See Also:
Constant Field Values

WEEK_SELECTION

public static final int WEEK_SELECTION
Mode where selections consisting of more than 7 days will snap to a full week.

See Also:
Constant Field Values

MONTH_DOWN

public static final int MONTH_DOWN
Return value used to identify when the month down button is pressed.

See Also:
Constant Field Values

MONTH_UP

public static final int MONTH_UP
Return value used to identify when the month up button is pressed.

See Also:
Constant Field Values

_dayOfMonthFormatter

protected static final java.text.SimpleDateFormat _dayOfMonthFormatter
Formatter used to format the day of the week to a numerical value.


_monthStringInsets

protected java.awt.Insets _monthStringInsets
Insets used in determining the rectangle for the month string background.

Constructor Detail

JXMonthView

public 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

public JXMonthView(long initialTime)
Create a new instance of the JXMonthView class using the month and year from initialTime as the first date to display.

Parameters:
initialTime - The first month to display.
Method Detail

updateUI

public void updateUI()
Resets the UI property to a value from the current look and feel.

Overrides:
updateUI in class javax.swing.JComponent

getFirstDisplayedDate

public long getFirstDisplayedDate()
Returns the first displayed date.

Returns:
long The first displayed date.

setFirstDisplayedDate

public void setFirstDisplayedDate(long date)
Set the first displayed date. We only use the month and year of this date. The Calendar.DAY_OF_MONTH field is reset to 1 and all other fields, with exception of the year and month , are reset to 0.

Parameters:
date - The first displayed date.

getLastDisplayedDate

public long getLastDisplayedDate()
Returns the last date able to be displayed. For example, if the last visible month was April the time returned would be April 30, 23:59:59.

Returns:
long The last displayed date.

ensureDateVisible

public void ensureDateVisible(long date)
Moves the 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.

Parameters:
date - Date to make visible.

getSelectedDateSpan

public DateSpan getSelectedDateSpan()
Returns a date span of the selected dates. The result will be null if no dates are selected.


setSelectedDateSpan

public void setSelectedDateSpan(DateSpan dateSpan)
Selects the dates in the DateSpan. This method will not change the initial date displayed so the caller must update this if necessary. If we are in SINGLE_SELECTION mode only the start time from the DateSpan will be used. If we are in WEEK_SELECTION mode the span will be modified to be valid if necessary.

Parameters:
dateSpan - DateSpan defining the selected dates. Passing null will clear the selection.

getSelectionMode

public int getSelectionMode()
Returns the current selection mode for this JXMonthView.

Returns:
int Selection mode.

setSelectionMode

public void setSelectionMode(int mode)
                      throws java.lang.IllegalArgumentException
Set the selection mode for this JXMonthView.

Throws:
java.lang.IllegalArgumentException

isFlaggedDate

protected boolean isFlaggedDate(long date)
Identifies whether or not the date passed is a flagged date.

Parameters:
date - date which to test for flagged status
Returns:
true if the date is flagged, false otherwise

setFlaggedDates

public void setFlaggedDates(long[] flaggedDates)
An array of longs defining days that should be flagged.

Parameters:
flaggedDates - the dates to be flagged

getBoxPaddingX

public int getBoxPaddingX()
Returns the padding used between days in the calendar.


setBoxPaddingX

public void setBoxPaddingX(int _boxPaddingX)
Sets the number of pixels used to pad the left and right side of a day. The padding is applied to both sides of the days. Therefore, if you used the padding value of 3, the number of pixels between any two days would be 6.


getBoxPaddingY

public int getBoxPaddingY()
Returns the padding used above and below days in the calendar.


setBoxPaddingY

public void setBoxPaddingY(int _boxPaddingY)
Sets the number of pixels used to pad the top and bottom of a day. The padding is applied to both the top and bottom of a day. Therefore, if you used the padding value of 3, the number of pixels between any two days would be 6.


getTraversable

public boolean getTraversable()
Returns whether or not the month view supports traversing months.

Returns:
true if month traversing is enabled.

setTraversable

public 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.

Parameters:
traversable - set to true to enable month traversing, false otherwise.

setDaysOfTheWeek

public void setDaysOfTheWeek(java.lang.String[] days)
                      throws java.lang.IllegalArgumentException,
                             java.lang.NullPointerException
Sets the single character representation for each day of the week. For this method the first days of the week days[0] is assumed to be Calendar.SUNDAY.

Throws:
java.lang.IllegalArgumentException - if days.length != DAYS_IN_WEEK
java.lang.NullPointerException - if days == null

getDaysOfTheWeek

public java.lang.String[] getDaysOfTheWeek()
Returns the single character representation for each day of the week.

Returns:
Single character representation for the days of the week

getFirstDayOfWeek

public int getFirstDayOfWeek()
Gets what the first day of the week is; e.g., Calendar.SUNDAY in the U.S., Calendar.MONDAY in France.

Returns:
int The first day of the week.

setFirstDayOfWeek

public void setFirstDayOfWeek(int firstDayOfWeek)
Sets what the first day of the week is; e.g., Calendar.SUNDAY in US, Calendar.MONDAY in France.

Parameters:
firstDayOfWeek - The first day of the week.
See Also:
Calendar

getTimeZone

public java.util.TimeZone getTimeZone()
Gets the time zone.

Returns:
The TimeZone used by the JXMonthView.

setTimeZone

public void setTimeZone(java.util.TimeZone tz)
Sets the time zone with the given time zone value.

Parameters:
tz - The TimeZone.

getAntialiased

public boolean getAntialiased()
Returns true if anti-aliased text is enabled for this component, false otherwise.

Returns:
boolean true if anti-aliased text is enabled, false otherwise.

setAntialiased

public void setAntialiased(boolean antiAlias)
Turns on/off anti-aliased text for this component.

Parameters:
antiAlias - true for anti-aliased text, false to turn it off.

getSelectedBackground

public java.awt.Color getSelectedBackground()
Returns the selected background color.

Returns:
the selected background color.

setSelectedBackground

public void setSelectedBackground(java.awt.Color c)
Sets the selected background color to c. The default color is 138, 173, 209 (Blue-ish)

Parameters:
c - Selected background.

getTodayBackground

public java.awt.Color getTodayBackground()
Returns the color used when painting the today background.

Returns:
Color Color

setTodayBackground

public void setTodayBackground(java.awt.Color c)
Sets the color used to draw the bounding box around today. The default is the background of the JXMonthView component.

Parameters:
c - color to set

getMonthStringBackground

public java.awt.Color getMonthStringBackground()
Returns the color used to paint the month string background.

Returns:
Color Color.

setMonthStringBackground

public void setMonthStringBackground(java.awt.Color c)
Sets the color used to draw the background of the month string. The default is 138, 173, 209 (Blue-ish).

Parameters:
c - color to set

getMonthStringForeground

public java.awt.Color getMonthStringForeground()
Returns the color used to paint the month string foreground.

Returns:
Color Color.

setMonthStringForeground

public void setMonthStringForeground(java.awt.Color c)
Sets the color used to draw the foreground of the month string. The default is Color.WHITE.

Parameters:
c - color to set

setDaysOfTheWeekForeground

public void setDaysOfTheWeekForeground(java.awt.Color c)
Sets the color used to draw the foreground of each day of the week. These are the titles

Parameters:
c - color to set

getDaysOfTheWeekForeground

public java.awt.Color getDaysOfTheWeekForeground()
Returns:
Color Color

setDayForeground

public void setDayForeground(int dayOfWeek,
                             java.awt.Color c)
Set the color to be used for painting the specified day of the week. Acceptable values are Calendar.SUNDAY - Calendar.SATURDAY.

Parameters:
dayOfWeek - constant value defining the day of the week.
c - The color to be used for painting the numeric day of the week.

getDayForeground

public java.awt.Color getDayForeground(int dayOfWeek)
Return the color that should be used for painting the numerical day of the week.

Parameters:
dayOfWeek - The day of week to get the color for.
Returns:
The color to be used for painting the numeric day of the week. If this was no color has yet been defined the component foreground color will be returned.

getDayOfTheWeek

protected int getDayOfTheWeek()
Convenience method so subclasses can get the currently painted day's day of the week. It is assumed the calendar, _cal, is already set to the correct day.

Returns:
day of the week (Calendar.SATURDAY, Calendar.SUNDAY, ...)
See Also:
Calendar

getMonthStringInsets

public java.awt.Insets getMonthStringInsets()
Returns a copy of the insets used to paint the month string background.

Returns:
Insets Month string insets.

setMonthStringInsets

public void setMonthStringInsets(java.awt.Insets insets)
Insets used to modify the width/height when painting the background of the month string area.

Parameters:
insets - Insets

getPreferredCols

public int getPreferredCols()
Returns the preferred number of columns to paint calendars in.

Returns:
int Columns of calendars.

setPreferredCols

public void setPreferredCols(int cols)
The preferred number of columns to paint calendars.

Parameters:
cols - The number of columns of calendars.

getPreferredRows

public int getPreferredRows()
Returns the preferred number of rows to paint calendars in.

Returns:
int Rows of calendars.

setPreferredRows

public void setPreferredRows(int rows)
Sets the preferred number of rows to paint calendars.

Parameters:
rows - The number of rows of calendars.

getMinimumSize

public java.awt.Dimension getMinimumSize()
Returns the minimum size needed to display this component.

Overrides:
getMinimumSize in class javax.swing.JComponent
Returns:
Dimension Minimum size.

getPreferredSize

public java.awt.Dimension getPreferredSize()
Returns the preferred size of this component.

Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
Dimension Preferred size.

getMaximumSize

public java.awt.Dimension getMaximumSize()
Returns the maximum size of this component.

Overrides:
getMaximumSize in class javax.swing.JComponent
Returns:
Dimension Maximum size.

setBorder

public void setBorder(javax.swing.border.Border border)
Sets the border of this component. The Border object is responsible for defining the insets for the component (overriding any insets set directly on the component) and for optionally rendering any border decorations within the bounds of those insets. Borders should be used (rather than insets) for creating both decorative and non-decorative (such as margins and padding) regions for a swing component. Compound borders can be used to nest multiple borders within a single component.

As the border may modify the bounds of the component, setting the border may result in a reduced number of displayed calendars.

Overrides:
setBorder in class javax.swing.JComponent
Parameters:
border - Border.

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Moves and resizes this component. The new location of the top-left corner is specified by x and y, and the new size is specified by width and height.

Overrides:
setBounds in class java.awt.Component
Parameters:
x - The new x-coordinate of this component
y - The new y-coordinate of this component
width - The new width of this component
height - The new height of this component

setBounds

public void setBounds(java.awt.Rectangle r)
Moves and resizes this component to conform to the new bounding rectangle r. This component's new position is specified by r.x and r.y, and its new size is specified by r.width and r.height

Overrides:
setBounds in class java.awt.Component
Parameters:
r - The new bounding rectangle for this component

setComponentOrientation

public void setComponentOrientation(java.awt.ComponentOrientation o)
Sets the language-sensitive orientation that is to be used to order the elements or text within this component. Language-sensitive LayoutManager and Component subclasses will use this property to determine how to lay out and draw components.

At construction time, a component's orientation is set to ComponentOrientation.UNKNOWN, indicating that it has not been specified explicitly. The UNKNOWN orientation behaves the same as ComponentOrientation.LEFT_TO_RIGHT.

Overrides:
setComponentOrientation in class java.awt.Component
Parameters:
o - The component orientation.

setFont

public void setFont(java.awt.Font font)
Sets the font of this component.

Overrides:
setFont in class javax.swing.JComponent
Parameters:
font - The font to become this component's font; if this parameter is null then this component will inherit the font of its parent.

removeNotify

public void removeNotify()

Overrides:
removeNotify in class javax.swing.JComponent

addNotify

public void addNotify()

Overrides:
addNotify in class javax.swing.JComponent

paintComponent

protected void paintComponent(java.awt.Graphics g)

Overrides:
paintComponent in class javax.swing.JComponent

paintMonthStringBackground

protected void paintMonthStringBackground(java.awt.Graphics g,
                                          int x,
                                          int y,
                                          int width,
                                          int height)
Paints the background of the month string. The bounding box for this background can be modified by setting its insets via setMonthStringInsets. The color of the background can be set via setMonthStringBackground.

Parameters:
g - Graphics object to paint to.
x - x-coordinate of upper left corner.
y - y-coordinate of upper left corner.
width - width of the bounding box.
height - height of the bounding box.
See Also:
setMonthStringBackground(java.awt.Color), setMonthStringInsets(java.awt.Insets)

paintDayBackground

protected void paintDayBackground(java.awt.Graphics g,
                                  int x,
                                  int y,
                                  int width,
                                  int height,
                                  long date)
Paint the background for the specified day.

Parameters:
g - Graphics object to paint to
x - x-coordinate of upper left corner
y - y-coordinate of upper left corner
width - width of bounding box for the day
height - height of bounding box for the day
date - long value representing the day being painted
See Also:
isSelectedDate(long), isToday(long)

paintDayForeground

protected void paintDayForeground(java.awt.Graphics g,
                                  int x,
                                  int y,
                                  int width,
                                  int height,
                                  long date)
Paint the foreground for the specified day.

Parameters:
g - Graphics object to paint to
x - x-coordinate of upper left corner
y - y-coordinate of upper left corner
width - width of bounding box for the day
height - height of bounding box for the day
date - long value representing the day being painted

isSelectedDate

protected boolean isSelectedDate(long date)
Returns true if the specified date falls within the _startSelectedDate and _endSelectedDate range.


isToday

protected boolean isToday(long date)
Returns true if the date passed in is the same as today.

Parameters:
date - long representing the date you want to compare to today.
Returns:
true if the date passed is the same as today.

getDayAt

public long getDayAt(int x,
                     int y)
Return a long representing the date at the specified x/y position. The date returned will have a valid day, month and year. Other fields such as hour, minute, second and milli-second will be set to 0.

Parameters:
x - X position
y - Y position
Returns:
long The date, -1 if position does not contain a date.

getTraversableButtonAt

protected int getTraversableButtonAt(int x,
                                     int y)
Returns an index defining which, if any, of the buttons for traversing the month was pressed. This method should only be called when setTraversable is set to true.

Parameters:
x - x position of the pointer
y - y position of the pointer
Returns:
MONTH_UP, MONTH_DOWN or -1 when no button is selected.

getActionCommand

public java.lang.String getActionCommand()
Returns the string currently used to identiy fired ActionEvents.

Returns:
String The string used for identifying ActionEvents.

setActionCommand

public void setActionCommand(java.lang.String actionCommand)
Sets the string used to identify fired ActionEvents.

Parameters:
actionCommand - The string used for identifying ActionEvents.

addActionListener

public void addActionListener(java.awt.event.ActionListener l)
Adds an ActionListener.

The ActionListener will receive an ActionEvent when a selection has been made.

Parameters:
l - The ActionListener that is to be notified

removeActionListener

public void removeActionListener(java.awt.event.ActionListener l)
Removes an ActionListener.

Parameters:
l - The action listener to remove.

fireActionPerformed

protected void fireActionPerformed()
Fires an ActionEvent to all listeners.


processMouseEvent

protected void processMouseEvent(java.awt.event.MouseEvent e)

Overrides:
processMouseEvent in class javax.swing.JComponent

processMouseMotionEvent

protected void processMouseMotionEvent(java.awt.event.MouseEvent e)

Overrides:
processMouseMotionEvent in class javax.swing.JComponent


Copyright © 2005 Sun Microsystems All Rights Reserved.