JCalendar is a Java date chooser bean for graphically picking a date. JCalendar is composed of several other Java beans, a JDayChooser, a JMonthChooser and a JYearChooser. All these beans have a locale property, provide several icons (Color 16×16, Color 32×32, Mono 16×16 and Mono 32×32) and their own locale property editor. So they can easily be used in GUI builders. Also part of the package is a JDateChooser, a bean composed of an IDateEditor (for direct date editing) and a button for opening a JCalendar for selecting the date.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation. If you like and use it, just let me know. If you prefer a commercial license without any of the LGPL restrictions, please contact Kai Toedter.


The installation is very easy, just put jcalendar.jar in your class path. If you want to run the JCalendar demos (see below) or just use the great JGoodies Looks Look and Feel, put also jgoodies-looks-2.4.1.jar in your class path. Both are in the lib directory of this JCalendar distribution.

Running the Demos

To run the JCalendar demo applet in your browser, you must have installed the Java Plug-in. Click here to run the applet. If you have the distribution installed locally on your computer, there’s several ways to run the demos. To start the JCalendar demo Windows Vista/XP/2000/NT/98 users can just right click the jcalendar.jar and open it with “javaw” or execute the “runJCalendarDemo.bat” batch file in the bin directory of this distribution. For all other operating systems, just put “jcalendar.jar” and “jgoodies-looks-2.4.1.jar” (both in the lib directory of the distribution) in your class path and start Java to execute the com.toedter.calendar.JCalendarDemo class.

The following table shows a list of used components (all Java Beans). All the screen shots use the great Plastic 3D Look and Feel (included in JGoodies Looks by JGoodies), which is bundled with the JCalendar bean.

Icon 16×16 Icon 32×32 Component Description
JDateChooser allows you to pick a date. You could either edit the date directly or click the image to popup a JCalendar to choose the date. The default date editor provides coloring of invalid dates as well as optional showing a mask. Also a JSpinnerDateEditor is provided that uses a JSpinner to display the date.
JCalendar allows you to choose a year, a month and a day. Depending on the locale, the month names and the weekday names change. The foreground of “today” is painted red. JCalendar is composed of several other beans described below.
JYearChooser is a JSpinField (see below) that allows you to choose a year by either typing the year in or using the spin buttons to increase or decrease the value.
JMonthChooser is a JComboBox that allows you to choose a month by either using the combo box or the spin buttons. The language of the month names is defined by the locale property.
JDayChooser lets you choose a day by clicking on the day number. Depending on the locale, the weekday names and the first days of the week change. The foreground of “today” is painted red. For navigation you can use the cursor and tab keys.

JSpinField lets you choose a numeric value. Properties for minimum and maximum values are provided. The value can be typed in directly or increased and decreased by the spin buttons. If you have typed in an incorrect value, the foreground color changes to red. Correct values are displayed green. After pressing the enter key the value will be set and displayed black. Since version 1.1.4 the preferred with of the value field is adjusted to the maximum of the width of minimum or maximum.
JLocaleChooser is a JComboBox that allows you to choose a locale. It can be used to test or set the locales of the beans above.


All beans use Swing components, so you need to have the Java SE installed. All beans also work with Java SE 1.4.x and 5.

Download and Latest Version
You can download a zip file, containing all the sources, libs and documentation.