Quels sont les bons Java Composants de sélection de date Swing? Jusqu'à présent, je n'ai vraiment trouvé que ces 2:
JCalendar
- celui-ci est assez bon car il utilise l'apparence sous-jacente.JXMonthView
dans le projet SwingX - pas aussi bon qu'il utilise son propre aspectCes deux aspects semblent un peu maladroits par rapport à certains que j'ai vus sur les pages Web. Par exemple, il peut être agréable de voir plusieurs mois en même temps. Quelqu'un connaît-il d'autres bons widgets?
Récemment, j'ai trouvé et utilisé le Microba DatePicker ( http://microba.sourceforge.net/ ) pour un projet personnel impliquant des interfaces graphiques Swing, et j'ai réellement aimé la façon dont ce contrôle est implémenté. En outre, la licence est BSD, vous pourrez donc personnaliser le contrôle et l'utiliser à des fins commerciales si vous en avez besoin.
J'ai essayé la plupart des sélecteurs de dates.
Je suggère LGoodDatePicker .
https://github.com/LGoodDatePicker/LGoodDatePicker
Divulgation juste: je suis le développeur principal.
Voici une liste de fonctionnalités générales (adaptée de Github):
Captures d'écran ci-dessous:
Je suis souvent en retard mais le meilleur que j'ai vu est: JDatePicker
(Ce qui m'a surpris: la semaine commence avec le dimanche - comme beaucoup de calendriers et d'ailleurs le dimanche est le jour 0 dans Java - mais vous pouvez éditer la source et recompiler pour qu'elle commence avec lundi à la place; -))
Il y a aussi NachoCalendar .
jDateChooser fourni avec jCalendar est le meilleur composant pour la date: Voici la façon d'obtenir la date du sélecteur de date:
//dat is name given to datepicker component
int day=dat.getJCalendar().getDayChooser().getDay();
int month=dat.getJCalendar().getMonthChooser().getMonth();
int year=dat.getJCalendar().getYearChooser().getYear();
String dateNow=year+"/"+month+"/"+day;
System.out.println(dateNow);
//***************************************************
//For setting date of date picker:
dat.setDateFormatString("dd-MM-yyyy");
Calendar currentDate = Calendar.getInstance();
dat.setDate(currentDate.getTime());