Jac*_*rky 1 java swing date jcalendar
我试图限制用户只选择今天之后的日期,或者选择Date
我在JCalendar API上看到的另一个日期
可以帮助我,但我没有发现任何东西..我怎么能这样做?
我认为组件没有直接的方法来做到这一点.我知道的一种方法是使用setSelectableDateRange(Date from,Date to)- 当您将从日期设置为当前日期时,所有前一天的单元格,年/月下拉变为禁用.
例:
JCalendar calendar = new JCalendar();
calendar.setSelectableDateRange(new Date(),new SimpleDateFormat("MM-DD-YYYY").parse("05-05-2015"));
PropertyChangeListener calendarChangeListener = new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
Date selectedDate = ((JCalendar)evt.getSource()).getDate();
}
};
calendar.addPropertyChangeListener("calendar",calendarChangeListener);
Run Code Online (Sandbox Code Playgroud)
这将禁用当前日期之前和05/05/2015之后的任何日期选择
请注意,此API未在其javadoc中记录.但这仍然是一个按预期工作的公共制定者.
编辑,因为你想知道如何JDateChooser在类似的上下文中使用
JDateChooser chooser = new JDateChooser();
chooser.getJCalendar().setSelectableDateRange(new Date(),new SimpleDateFormat("MM-DD-YYYY").parse("05-05-2015"));
chooser.getJCalendar().addPropertyChangeListener("calendar",...);
Run Code Online (Sandbox Code Playgroud)