Package com.toedter.calendar
Class JTextFieldDateEditor
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.text.JTextComponent
-
- javax.swing.JTextField
-
- javax.swing.JFormattedTextField
-
- com.toedter.calendar.JTextFieldDateEditor
-
- All Implemented Interfaces:
IDateEditor,java.awt.event.ActionListener,java.awt.event.FocusListener,java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,java.util.EventListener,javax.accessibility.Accessible,javax.swing.event.CaretListener,javax.swing.Scrollable,javax.swing.SwingConstants
public class JTextFieldDateEditor extends javax.swing.JFormattedTextField implements IDateEditor, javax.swing.event.CaretListener, java.awt.event.FocusListener, java.awt.event.ActionListener
JTextFieldDateEditor is the default editor used by JDateChooser. It is a formatted text field, that colores valid dates green/black and invalid dates red. The date format patten and mask can be set manually. If not set, the MEDIUM pattern of a SimpleDateFormat with regards to the actual locale is used.- Version:
- $LastChangedRevision: 97 $, $LastChangedDate: 2006-05-24 17:30:41 +0200 (Mi, 24 Mai 2006) $
- Author:
- Kai Toedter
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JFormattedTextField
javax.swing.JFormattedTextField.AbstractFormatter, javax.swing.JFormattedTextField.AbstractFormatterFactory
-
Nested classes/interfaces inherited from class javax.swing.JTextField
javax.swing.JTextField.AccessibleJTextField
-
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
javax.swing.text.JTextComponent.AccessibleJTextComponent, javax.swing.text.JTextComponent.DropLocation, javax.swing.text.JTextComponent.KeyBinding
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected java.awt.ColordarkGreenprotected java.util.Datedateprotected java.text.SimpleDateFormatdateFormatterprotected java.lang.StringdatePatternprotected DateUtildateUtilprotected javax.swing.text.MaskFormattermaskFormatterprotected java.lang.StringmaskPatternprotected charplaceholder-
Fields inherited from class javax.swing.JFormattedTextField
COMMIT, COMMIT_OR_REVERT, PERSIST, REVERT
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description JTextFieldDateEditor()JTextFieldDateEditor(boolean showMask, java.lang.String datePattern, java.lang.String maskPattern, char placeholder)JTextFieldDateEditor(java.lang.String datePattern, java.lang.String maskPattern, char placeholder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidactionPerformed(java.awt.event.ActionEvent e)Validates the typed date and sets it (only if it is valid).voidcaretUpdate(javax.swing.event.CaretEvent event)After any user input, the value of the textfield is proofed.java.lang.StringcreateMaskFromDatePattern(java.lang.String datePattern)Creates a mask from a date pattern.voidfocusGained(java.awt.event.FocusEvent e)voidfocusLost(java.awt.event.FocusEvent focusEvent)java.util.DategetDate()Returns the date.java.lang.StringgetDateFormatString()Returns tha date format string.java.util.DategetMaxSelectableDate()Gets the minimum selectable date.java.util.DategetMinSelectableDate()Gets the maximum selectable date.java.awt.DimensiongetPreferredSize()Returns the preferred size.javax.swing.JComponentgetUiComponent()Returns the UI component, e.g.booleanisMaskVisible()Returns true, if the mask is visible.static voidmain(java.lang.String[] s)Creates a JFrame with a JCalendar inside and can be used for testing.voidsetDate(java.util.Date date)Sets the date.protected voidsetDate(java.util.Date date, boolean firePropertyChange)Sets the date.voidsetDateFormatString(java.lang.String dateFormatString)Sets the date format string, e.g.voidsetEnabled(boolean b)Enables and disabled the compoment.voidsetLocale(java.util.Locale locale)Sets the locale.voidsetMaskVisible(boolean isMaskVisible)Sets the mask visible.voidsetMaxSelectableDate(java.util.Date max)Sets the maximum selectable date.voidsetMinSelectableDate(java.util.Date min)Sets the minimum selectable date.voidsetSelectableDateRange(java.util.Date min, java.util.Date max)Sets a valid date range for selectable dates.-
Methods inherited from class javax.swing.JFormattedTextField
commitEdit, getActions, getFocusLostBehavior, getFormatter, getFormatterFactory, getUIClassID, getValue, invalidEdit, isEditValid, processFocusEvent, processInputMethodEvent, setDocument, setFocusLostBehavior, setFormatter, setFormatterFactory, setValue
-
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getScrollOffset, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setFont, setHorizontalAlignment, setScrollOffset
-
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, read, removeCaretListener, removeKeymap, removeNotify, replaceSelection, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setText, setUI, updateUI, viewToModel, viewToModel2D, write
-
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, 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
-
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 java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, 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, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, processHierarchyBoundsEvent, processHierarchyEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.toedter.calendar.IDateEditor
addPropertyChangeListener, addPropertyChangeListener, removePropertyChangeListener, removePropertyChangeListener
-
-
-
-
Field Detail
-
date
protected java.util.Date date
-
dateFormatter
protected java.text.SimpleDateFormat dateFormatter
-
maskFormatter
protected javax.swing.text.MaskFormatter maskFormatter
-
datePattern
protected java.lang.String datePattern
-
maskPattern
protected java.lang.String maskPattern
-
placeholder
protected char placeholder
-
darkGreen
protected java.awt.Color darkGreen
-
dateUtil
protected DateUtil dateUtil
-
-
Constructor Detail
-
JTextFieldDateEditor
public JTextFieldDateEditor()
-
JTextFieldDateEditor
public JTextFieldDateEditor(java.lang.String datePattern, java.lang.String maskPattern, char placeholder)
-
JTextFieldDateEditor
public JTextFieldDateEditor(boolean showMask, java.lang.String datePattern, java.lang.String maskPattern, char placeholder)
-
-
Method Detail
-
getDate
public java.util.Date getDate()
Description copied from interface:IDateEditorReturns the date.- Specified by:
getDatein interfaceIDateEditor- Returns:
- the date
-
setDate
public void setDate(java.util.Date date)
Description copied from interface:IDateEditorSets the date. This should be implemented as a bound property, firing the "date" property.- Specified by:
setDatein interfaceIDateEditor- Parameters:
date- the date to set
-
setDate
protected void setDate(java.util.Date date, boolean firePropertyChange)Sets the date.- Parameters:
date- the datefirePropertyChange- true, if the date property should be fired.
-
setDateFormatString
public void setDateFormatString(java.lang.String dateFormatString)
Description copied from interface:IDateEditorSets the date format string, e.g. "MM/dd/yy". If the date format string is null or invalid, the date format string will be set to the MEDIUM Simple date format of the current locale.- Specified by:
setDateFormatStringin interfaceIDateEditor- Parameters:
dateFormatString- the date format string
-
getDateFormatString
public java.lang.String getDateFormatString()
Description copied from interface:IDateEditorReturns tha date format string.- Specified by:
getDateFormatStringin interfaceIDateEditor- Returns:
- the date format string
-
getUiComponent
public javax.swing.JComponent getUiComponent()
Description copied from interface:IDateEditorReturns the UI component, e.g. the actual JTextField implementing the editor.- Specified by:
getUiComponentin interfaceIDateEditor- Returns:
- the UI component
-
caretUpdate
public void caretUpdate(javax.swing.event.CaretEvent event)
After any user input, the value of the textfield is proofed. Depending on being a valid date, the value is colored green or red.- Specified by:
caretUpdatein interfacejavax.swing.event.CaretListener- Parameters:
event- the caret event
-
focusLost
public void focusLost(java.awt.event.FocusEvent focusEvent)
- Specified by:
focusLostin interfacejava.awt.event.FocusListener
-
focusGained
public void focusGained(java.awt.event.FocusEvent e)
- Specified by:
focusGainedin interfacejava.awt.event.FocusListener
-
setLocale
public void setLocale(java.util.Locale locale)
Description copied from interface:IDateEditorSets the locale. Usually this should have impact on the current date format string.- Specified by:
setLocalein interfaceIDateEditor- Overrides:
setLocalein classjava.awt.Component- Parameters:
locale- the locale to set
-
createMaskFromDatePattern
public java.lang.String createMaskFromDatePattern(java.lang.String datePattern)
Creates a mask from a date pattern. This is a very simple (and incomplete) implementation thet works only with numbers. A date pattern of "MM/dd/yy" will result in the mask "##/##/##". Probably you want to override this method if it does not fit your needs.- Parameters:
datePattern- the date pattern- Returns:
- the mask
-
isMaskVisible
public boolean isMaskVisible()
Returns true, if the mask is visible.- Returns:
- true, if the mask is visible
-
setMaskVisible
public void setMaskVisible(boolean isMaskVisible)
Sets the mask visible.- Parameters:
isMaskVisible- true, if the mask should be visible
-
getPreferredSize
public java.awt.Dimension getPreferredSize()
Returns the preferred size. If a date pattern is set, it is the size the date pattern would take.- Overrides:
getPreferredSizein classjavax.swing.JTextField
-
actionPerformed
public void actionPerformed(java.awt.event.ActionEvent e)
Validates the typed date and sets it (only if it is valid).- Specified by:
actionPerformedin interfacejava.awt.event.ActionListener
-
setEnabled
public void setEnabled(boolean b)
Enables and disabled the compoment. It also fixes the background bug 4991597 and sets the background explicitely to a TextField.inactiveBackground.- Specified by:
setEnabledin interfaceIDateEditor- Overrides:
setEnabledin classjavax.swing.JComponent- Parameters:
b- true, if the UI component should be enabled.
-
getMaxSelectableDate
public java.util.Date getMaxSelectableDate()
Description copied from interface:IDateEditorGets the minimum selectable date.- Specified by:
getMaxSelectableDatein interfaceIDateEditor- Returns:
- the minimum selectable date
-
getMinSelectableDate
public java.util.Date getMinSelectableDate()
Description copied from interface:IDateEditorGets the maximum selectable date.- Specified by:
getMinSelectableDatein interfaceIDateEditor- Returns:
- the maximum selectable date
-
setMaxSelectableDate
public void setMaxSelectableDate(java.util.Date max)
Description copied from interface:IDateEditorSets the maximum selectable date.- Specified by:
setMaxSelectableDatein interfaceIDateEditor- Parameters:
max- maximum selectable date
-
setMinSelectableDate
public void setMinSelectableDate(java.util.Date min)
Description copied from interface:IDateEditorSets the minimum selectable date.- Specified by:
setMinSelectableDatein interfaceIDateEditor- Parameters:
min- minimum selectable date
-
setSelectableDateRange
public void setSelectableDateRange(java.util.Date min, java.util.Date max)Description copied from interface:IDateEditorSets a valid date range for selectable dates. If max is before min, the default range with no limitation is set.- Specified by:
setSelectableDateRangein interfaceIDateEditor- Parameters:
min- the minimum selectable date or null (then the minimum date should be set to 01\01\0001)max- the maximum selectable date or null (then the maximum date should be set to 01\01\9999)
-
main
public static void main(java.lang.String[] s)
Creates a JFrame with a JCalendar inside and can be used for testing.- Parameters:
s- The command line arguments
-
-