org.beanfabrics.swing.goodies.calendar
Class CalendarChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.beanfabrics.swing.goodies.calendar.CalendarChooser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
BnCalendarChooser

public class CalendarChooser
extends javax.swing.JPanel

CalendarChooser is a date chooser control for a single date.

example:

 Locale locale = Locale.US;
 final CalendarChooser cal = new CalendarChooser(new Date(), locale);
 JFrame frame = new JFrame();
 frame.getContentPane().setLayout(new BorderLayout());
 frame.getContentPane().add("Center", cal);
 cal.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent evt) {
         System.out.println(cal.getSelectedDate());
     }
 });
 frame.pack();
 frame.setVisible(true);
 

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
 
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.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String SELECTEDDATE_PROPERTYNAME
           
 
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
CalendarChooser()
          Creates a new instance of CalendarBean displaying the current month using the default locale.
CalendarChooser(java.util.Date date, java.util.Locale locale)
          Creates a new instance of CalendarBean displaying the given month and using the given locale.
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          Adds the given action listnener to this component.
protected  void fireActionPerformed(java.awt.event.ActionEvent e)
          Fires the given action event to all listeners that are added to this component.
 java.awt.Font getDateFont()
          Returns the currently used font of the title of the calendar panel, which displays the currently displayed month's name and the year.
 java.awt.Color getDayBackground()
          Returns the currently used color of the background of the days.
 java.awt.Font getDayFont()
          Returns the currently used font of the days displayed on the calendar panel.
 java.awt.Insets getDayMargin()
          Returns the currently used margin of each days button.
 java.awt.Font getHeaderFont()
          Returns the currently used font of the header of the days.
 java.awt.Color getHeaderForegroundColor()
          Returns the currently used foreground color of the header.
 java.util.Date getMonth()
          Returns the visible month.
 int getNumberOfPreviousVisibleMonths()
          Returns the number of months that are visible ahead the current month.
 int getNumberOfSubsequentVisibleMonths()
          Returns the number of months that are visible begind the current month.
 java.awt.Dimension getRollButtonSize()
          Returns the currently used margin of each days button.
 java.awt.Color getSelectedBackgroundColor()
          Returns the currently used day background color for selected day.
 java.awt.Color getSelectedColor()
          Returns the currently used font color for selected day.
 java.util.Date getSelectedDate()
          Returns the selected date as an Date instance.
 java.awt.Color getWeekendColor()
          Returns the currently used font color for weekend days.
 java.awt.Color getWorkdayColor()
          Returns the currently used font color for workday days.
protected  void initGui()
          Builds or Rebuilds the graphical user interface of the calendar.
 void removeActionListener(java.awt.event.ActionListener l)
          Removes the given action listener from this component.
 void rollOneMonthBack()
          Rolls the calendar one month backwards and displays the new month.
 void rollOneMonthForward()
          Rolls the calendar one month forward and displays the new month.
 void setDateFont(java.awt.Font dateFont)
          Changes the font of the title of the calendar panel, which displays the currently displayed month's name and the year.
 void setDates(java.util.Date month, java.util.Date selectedDate)
          Sets the displayed month and the selected date.
 void setDayBackground(java.awt.Color dayBackground)
          Changes the color of the background of the days.
 void setDayFont(java.awt.Font dayFont)
          Changes the font of the days displayed on the calendar panel.
 void setDayMargin(java.awt.Insets dayMargin)
          Changes the margin of each days button.
 void setHeaderFont(java.awt.Font headerFont)
          Changes the font of the header of the days.
 void setHeaderForegroundColor(java.awt.Color c)
          Changes the currently used foreground color of the header.
 void setMonth(java.util.Date month)
          Sets the given month to display on the calndar panel.
 void setNumberOfPreviousVisibleMonths(int number)
          Sets the number of months that are visible ahead the current month.
 void setNumberOfSubsequentVisibleMonths(int number)
          Sets the number of months that are visible behind the current month.
 void setRollButtonSize(java.awt.Dimension newSize)
          Changes the margin of each days button.
 void setSelectedBackgroundColor(java.awt.Color selectedBackgroundColor)
          Changes the color of the selected day background.
 void setSelectedColor(java.awt.Color selectedColor)
          Changes the color of the selected day font.
 void setSelectedDate(java.util.Date date)
          Selects the given date and displays the month containing that date.
 void setSelectedDate(java.util.Date date, boolean rollToMonth)
          Selects the given date and displays the month containing that date.
 void setWeekendColor(java.awt.Color weekendColor)
          Changes the color of the weekend day font.
 void setWorkdayColor(java.awt.Color workdayColor)
          Changes the color of the workday font.
 void updateUI()
           
 
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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, setBounds, setBounds, setComponentOrientation, 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

SELECTEDDATE_PROPERTYNAME

public static final java.lang.String SELECTEDDATE_PROPERTYNAME
See Also:
Constant Field Values
Constructor Detail

CalendarChooser

public CalendarChooser()
Creates a new instance of CalendarBean displaying the current month using the default locale.


CalendarChooser

public CalendarChooser(java.util.Date date,
                       java.util.Locale locale)
Creates a new instance of CalendarBean displaying the given month and using the given locale.

Parameters:
date - the date that initially should be selected
locale - the locale that should be used for the calendar
Method Detail

initGui

protected void initGui()
Builds or Rebuilds the graphical user interface of the calendar. This method is called by the constructor or whenever properties like font colors or font sizes are changed.


rollOneMonthForward

public void rollOneMonthForward()
Rolls the calendar one month forward and displays the new month.


rollOneMonthBack

public void rollOneMonthBack()
Rolls the calendar one month backwards and displays the new month.


setDates

public void setDates(java.util.Date month,
                     java.util.Date selectedDate)
Sets the displayed month and the selected date.

Parameters:
month - the month to show
selectedDate - the date to select

setSelectedDate

public void setSelectedDate(java.util.Date date)
Selects the given date and displays the month containing that date.

Parameters:
date - the date to select

setSelectedDate

public void setSelectedDate(java.util.Date date,
                            boolean rollToMonth)
Selects the given date and displays the month containing that date.

Parameters:
date - the date to select
rollToMonth - boolean if true the panel scrolls to the respective month

getSelectedDate

public java.util.Date getSelectedDate()
Returns the selected date as an Date instance.

Returns:
the selected date

getMonth

public java.util.Date getMonth()
Returns the visible month.

Returns:
Date

setMonth

public void setMonth(java.util.Date month)
Sets the given month to display on the calndar panel.

Parameters:
month - Date

removeActionListener

public void removeActionListener(java.awt.event.ActionListener l)
Removes the given action listener from this component.


addActionListener

public void addActionListener(java.awt.event.ActionListener l)
Adds the given action listnener to this component. All action listeners will be informed about changes that are made to the selected date of this calendar.

Parameters:
l - the listener to add to this component

fireActionPerformed

protected void fireActionPerformed(java.awt.event.ActionEvent e)
Fires the given action event to all listeners that are added to this component.

Parameters:
e - the event to fire

setWeekendColor

public void setWeekendColor(java.awt.Color weekendColor)
Changes the color of the weekend day font.

Parameters:
weekendColor - the new color for the weekend day font

getWeekendColor

public java.awt.Color getWeekendColor()
Returns the currently used font color for weekend days.

Returns:
the font color for the weekend days

setWorkdayColor

public void setWorkdayColor(java.awt.Color workdayColor)
Changes the color of the workday font.

Parameters:
workdayColor - the new color for the workday font

getWorkdayColor

public java.awt.Color getWorkdayColor()
Returns the currently used font color for workday days.

Returns:
the font color for the workday days

setSelectedColor

public void setSelectedColor(java.awt.Color selectedColor)
Changes the color of the selected day font.

Parameters:
selectedColor - the new color for the selected day font

getSelectedColor

public java.awt.Color getSelectedColor()
Returns the currently used font color for selected day.

Returns:
the font color for the selected day

setSelectedBackgroundColor

public void setSelectedBackgroundColor(java.awt.Color selectedBackgroundColor)
Changes the color of the selected day background.

Parameters:
selectedBackgroundColor - the new color for the selected day background

getSelectedBackgroundColor

public java.awt.Color getSelectedBackgroundColor()
Returns the currently used day background color for selected day.

Returns:
the day background color for the selected day

setDayBackground

public void setDayBackground(java.awt.Color dayBackground)
Changes the color of the background of the days.

Parameters:
dayBackground - the new color for the background ofvthe days

getDayBackground

public java.awt.Color getDayBackground()
Returns the currently used color of the background of the days.

Returns:
the currently used color of the background of the days

setHeaderFont

public void setHeaderFont(java.awt.Font headerFont)
Changes the font of the header of the days.

Parameters:
headerFont - the font of the header of the days

getHeaderFont

public java.awt.Font getHeaderFont()
Returns the currently used font of the header of the days.

Returns:
the currently used font of the header of the days

setHeaderForegroundColor

public void setHeaderForegroundColor(java.awt.Color c)
Changes the currently used foreground color of the header.

Parameters:
c - the foreground color of the header

getHeaderForegroundColor

public java.awt.Color getHeaderForegroundColor()
Returns the currently used foreground color of the header.

Returns:
the currently used foreground color of the header

setDayFont

public void setDayFont(java.awt.Font dayFont)
Changes the font of the days displayed on the calendar panel.

Parameters:
dayFont - the font of the days displayed on the calendar panel

getDayFont

public java.awt.Font getDayFont()
Returns the currently used font of the days displayed on the calendar panel.

Returns:
the currently used font of the days displayed on the calendar panel

setDateFont

public void setDateFont(java.awt.Font dateFont)
Changes the font of the title of the calendar panel, which displays the currently displayed month's name and the year.

Parameters:
dateFont - the new font for the title

getDateFont

public java.awt.Font getDateFont()
Returns the currently used font of the title of the calendar panel, which displays the currently displayed month's name and the year.

Returns:
the currently used font for the title

setDayMargin

public void setDayMargin(java.awt.Insets dayMargin)
Changes the margin of each days button.

Parameters:
dayMargin - the margin of each days button

getDayMargin

public java.awt.Insets getDayMargin()
Returns the currently used margin of each days button.

Returns:
the currently used margin of each days button

setRollButtonSize

public void setRollButtonSize(java.awt.Dimension newSize)
Changes the margin of each days button.

Parameters:
dayMargin - the margin of each days button

getRollButtonSize

public java.awt.Dimension getRollButtonSize()
Returns the currently used margin of each days button.

Returns:
the currently used margin of each days button

setNumberOfPreviousVisibleMonths

public void setNumberOfPreviousVisibleMonths(int number)
Sets the number of months that are visible ahead the current month.

Parameters:
number - number of previous visible months

getNumberOfPreviousVisibleMonths

public int getNumberOfPreviousVisibleMonths()
Returns the number of months that are visible ahead the current month.

Returns:
number of previous visible months

setNumberOfSubsequentVisibleMonths

public void setNumberOfSubsequentVisibleMonths(int number)
Sets the number of months that are visible behind the current month.

Parameters:
number - number of subsequent visible months

getNumberOfSubsequentVisibleMonths

public int getNumberOfSubsequentVisibleMonths()
Returns the number of months that are visible begind the current month.

Returns:
number of subsequent visible months

updateUI

public void updateUI()
Overrides:
updateUI in class javax.swing.JPanel