Package org.meteoinfo.ui.calendar
Class JDateChooser
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.meteoinfo.ui.calendar.JDateChooser
-
- All Implemented Interfaces:
java.awt.event.ActionListener,java.beans.PropertyChangeListener,java.util.EventListener
public class JDateChooser extends javax.swing.JPanel implements java.awt.event.ActionListener, java.beans.PropertyChangeListenerA date chooser containing a date editor and a button, that makes a JCalendar visible for choosing a date. If no date editor is specified, a JTextFieldDateEditor is used as default.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
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
-
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.JButtoncalendarButtonprotected IDateEditordateEditorprotected booleandateSelectedprotected booleanisInitializedprotected JCalendarjcalendarprotected java.util.DatelastSelectedDateprotected javax.swing.JPopupMenupopup-
Fields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description JDateChooser()Creates a new JDateChooser.JDateChooser(java.lang.String datePattern, java.lang.String maskPattern, char placeholder)Creates a new JDateChooser.JDateChooser(java.util.Date date)Creates a new JDateChooser.JDateChooser(java.util.Date date, java.lang.String dateFormatString)Creates a new JDateChooser.JDateChooser(java.util.Date date, java.lang.String dateFormatString, IDateEditor dateEditor)Creates a new JDateChooser.JDateChooser(IDateEditor dateEditor)Creates a new JDateChooser with given IDateEditor.JDateChooser(JCalendar jcal, java.util.Date date, java.lang.String dateFormatString, IDateEditor dateEditor)Creates a new JDateChooser.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.ActionEvent e)Called when the calendar button was pressed.voidcleanup()Should only be invoked if the JDateChooser is not used anymore.java.util.CalendargetCalendar()Returns the calendar.javax.swing.JButtongetCalendarButton()Returns the calendar button.java.util.DategetDate()Returns the date.IDateEditorgetDateEditor()Returns the date editor.java.lang.StringgetDateFormatString()Gets the date format string.JCalendargetJCalendar()Returns the JCalendar component.java.util.DategetMaxSelectableDate()Gets the maximum selectable date.java.util.DategetMinSelectableDate()Gets the minimum selectable date.booleanisEnabled()Returns true, if enabled.static voidmain(java.lang.String[] s)Creates a JFrame with a JDateChooser inside and can be used for testing.voidpropertyChange(java.beans.PropertyChangeEvent evt)Listens for a "date" property change or a "day" property change event from the JCalendar.booleanrequestFocusInWindow()voidsetCalendar(java.util.Calendar calendar)Sets the calendar.voidsetDate(java.util.Date date)Sets the date.voidsetDateFormatString(java.lang.String dfString)Sets the date format string.voidsetEnabled(boolean enabled)Enable or disable the JDateChooser.voidsetFont(java.awt.Font font)Sets the font of all subcomponents.voidsetIcon(javax.swing.ImageIcon icon)Sets the icon of the buuton.voidsetLocale(java.util.Locale l)Sets the locale.voidsetMaxSelectableDate(java.util.Date max)voidsetMinSelectableDate(java.util.Date min)voidsetSelectableDateRange(java.util.Date min, java.util.Date max)Sets a valid date range for selectable dates.voidupdateUI()Updates the UI of itself and the popup.-
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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
-
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
-
-
-
-
Field Detail
-
dateEditor
protected IDateEditor dateEditor
-
calendarButton
protected javax.swing.JButton calendarButton
-
jcalendar
protected JCalendar jcalendar
-
popup
protected javax.swing.JPopupMenu popup
-
isInitialized
protected boolean isInitialized
-
dateSelected
protected boolean dateSelected
-
lastSelectedDate
protected java.util.Date lastSelectedDate
-
-
Constructor Detail
-
JDateChooser
public JDateChooser()
Creates a new JDateChooser. By default, no date is set and the textfield is empty.
-
JDateChooser
public JDateChooser(IDateEditor dateEditor)
Creates a new JDateChooser with given IDateEditor.- Parameters:
dateEditor- the dateEditor to be used used to display the date. if null, a JTextFieldDateEditor is used.
-
JDateChooser
public JDateChooser(java.util.Date date)
Creates a new JDateChooser.- Parameters:
date- the date or null
-
JDateChooser
public JDateChooser(java.util.Date date, java.lang.String dateFormatString)Creates a new JDateChooser.- Parameters:
date- the date or nulldateFormatString- the date format string or null (then MEDIUM SimpleDateFormat format is used)
-
JDateChooser
public JDateChooser(java.util.Date date, java.lang.String dateFormatString, IDateEditor dateEditor)Creates a new JDateChooser.- Parameters:
date- the date or nulldateFormatString- the date format string or null (then MEDIUM SimpleDateFormat format is used)dateEditor- the dateEditor to be used used to display the date. if null, a JTextFieldDateEditor is used.
-
JDateChooser
public JDateChooser(java.lang.String datePattern, java.lang.String maskPattern, char placeholder)Creates a new JDateChooser. If the JDateChooser is created with this constructor, the mask will be always visible in the date editor. Please note that the date pattern and the mask will not be changed if the locale of the JDateChooser is changed.- Parameters:
datePattern- the date pattern, e.g. "MM/dd/yy"maskPattern- the mask pattern, e.g. "##/##/##"placeholder- the place holder character, e.g. '_'
-
JDateChooser
public JDateChooser(JCalendar jcal, java.util.Date date, java.lang.String dateFormatString, IDateEditor dateEditor)
Creates a new JDateChooser.- Parameters:
jcal- the JCalendar to be useddate- the date or nulldateFormatString- the date format string or null (then MEDIUM Date format is used)dateEditor- the dateEditor to be used used to display the date. if null, a JTextFieldDateEditor is used.
-
-
Method Detail
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Called when the calendar button was pressed.- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener- Parameters:
e- the action event
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent evt)
Listens for a "date" property change or a "day" property change event from the JCalendar. Updates the date editor and closes the popup.- Specified by:
propertyChangein interfacejava.beans.PropertyChangeListener- Parameters:
evt- the event
-
updateUI
public void updateUI()
Updates the UI of itself and the popup.- Overrides:
updateUIin classjavax.swing.JPanel
-
setLocale
public void setLocale(java.util.Locale l)
Sets the locale.- Overrides:
setLocalein classjava.awt.Component- Parameters:
l- The new locale value
-
getDateFormatString
public java.lang.String getDateFormatString()
Gets the date format string.- Returns:
- Returns the dateFormatString.
-
setDateFormatString
public void setDateFormatString(java.lang.String dfString)
Sets the date format string. E.g "MMMMM d, yyyy" will result in "July 21, 2004" if this is the selected date and locale is English.- Parameters:
dfString- The dateFormatString to set.
-
getDate
public java.util.Date getDate()
Returns the date. If the JDateChooser is started with a null date and no date was set by the user, null is returned.- Returns:
- the current date
-
setDate
public void setDate(java.util.Date date)
Sets the date. Fires the property change "date" if date != null.- Parameters:
date- the new date.
-
getCalendar
public java.util.Calendar getCalendar()
Returns the calendar. If the JDateChooser is started with a null date (or null calendar) and no date was set by the user, null is returned.- Returns:
- the current calendar
-
setCalendar
public void setCalendar(java.util.Calendar calendar)
Sets the calendar. Value null will set the null date on the date editor.- Parameters:
calendar- the calendar.
-
setEnabled
public void setEnabled(boolean enabled)
Enable or disable the JDateChooser.- Overrides:
setEnabledin classjavax.swing.JComponent- Parameters:
enabled- the new enabled value
-
isEnabled
public boolean isEnabled()
Returns true, if enabled.- Overrides:
isEnabledin classjava.awt.Component- Returns:
- true, if enabled.
-
setIcon
public void setIcon(javax.swing.ImageIcon icon)
Sets the icon of the buuton.- Parameters:
icon- The new icon
-
setFont
public void setFont(java.awt.Font font)
Sets the font of all subcomponents.- Overrides:
setFontin classjavax.swing.JComponent- Parameters:
font- the new font
-
getJCalendar
public JCalendar getJCalendar()
Returns the JCalendar component. THis is usefull if you want to set some properties.- Returns:
- the JCalendar
-
getCalendarButton
public javax.swing.JButton getCalendarButton()
Returns the calendar button.- Returns:
- the calendar button
-
getDateEditor
public IDateEditor getDateEditor()
Returns the date editor.- Returns:
- the date editor
-
setSelectableDateRange
public void setSelectableDateRange(java.util.Date min, java.util.Date max)Sets a valid date range for selectable dates. If max is before min, the default range with no limitation is set.- Parameters:
min- the minimum selectable date or null (then the minimum date is set to 01\01\0001)max- the maximum selectable date or null (then the maximum date is set to 01\01\9999)
-
setMaxSelectableDate
public void setMaxSelectableDate(java.util.Date max)
-
setMinSelectableDate
public void setMinSelectableDate(java.util.Date min)
-
getMaxSelectableDate
public java.util.Date getMaxSelectableDate()
Gets the maximum selectable date.- Returns:
- the maximum selectable date
-
getMinSelectableDate
public java.util.Date getMinSelectableDate()
Gets the minimum selectable date.- Returns:
- the minimum selectable date
-
cleanup
public void cleanup()
Should only be invoked if the JDateChooser is not used anymore. Due to popup handling it had to register a change listener to the default menu selection manager which will be unregistered here. Use this method to cleanup possible memory leaks.
-
requestFocusInWindow
public boolean requestFocusInWindow()
- Overrides:
requestFocusInWindowin classjavax.swing.JComponent
-
main
public static void main(java.lang.String[] s)
Creates a JFrame with a JDateChooser inside and can be used for testing.- Parameters:
s- The command line arguments
-
-