在java swing jdatepicker中将最大日期值设置为今天
我想使用jdatepicker输入生日。 在jdatepicker中是否有任何方法、属性或任何其他方式将最长日期设置为今天 请参阅以下jdatepicker 1.3.4的代码在java swing jdatepicker中将最大日期值设置为今天,java,Java,我想使用jdatepicker输入生日。 在jdatepicker中是否有任何方法、属性或任何其他方式将最长日期设置为今天 请参阅以下jdatepicker 1.3.4的代码 UtilDateModel model = new UtilDateModel(); Properties p = new Properties(); p.put("text.today", "Today"); p.put("text.month", "Month"); p.put("tex
UtilDateModel model = new UtilDateModel();
Properties p = new Properties();
p.put("text.today", "Today");
p.put("text.month", "Month");
p.put("text.year", "Year");
JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
JDatePickerImpl datePicker = new JDatePickerImpl(datePanel,
new DateLabelFormatter());
我已经实现了DateLabelFormatter类用于日期格式化。
虽然我会提供
public class DateLabelFormatter extends AbstractFormatter {
private SimpleDateFormat dateFormatter = new SimpleDateFormat(Constants.DATE_FORMAT_DDMMMYYYY);
public Object stringToValue(String text) throws ParseException {
return dateFormatter.parseObject(text);
}
public String valueToString(Object value) throws ParseException {
if (value != null) {
Calendar cal = (Calendar) value;
return dateFormatter.format(cal.getTime());
}
return "";
}}
我也有同样的问题,我无法解决它。但我尝试使用JCalendar库,现在它使用setMaxSelectableDate方法工作 这是我的代码:
JDateChooser chooser = new JDateChooser();
chooser.setMaxSelectableDate(new Date());
chooser.setDateFormatString("dd-MM-yyyy");
chooser.setDate(new Date());
我知道这有点晚了,但我决定把它贴出来,以防有人需要 我是如何使用DateLabelFormatter类将datepicker上的最大日期限制为今天的
class DateLabelFormatter extends AbstractFormatter {
private String datePattern = "yyyy-MM-dd";
private SimpleDateFormat dateFormatter = new SimpleDateFormat(datePattern);
@Override
public Object stringToValue(String text) throws ParseException {
return dateFormatter.parseObject(text);
}
@Override
public String valueToString(Object value) throws ParseException {
if (value != null) {
Calendar cal = (Calendar) value;
Calendar today = Calendar.getInstance();
if (cal.getTime().after(today.getTime())) return dateFormatter.format(today.getTime());
return dateFormatter.format(cal.getTime());
}
return "";
}}
这不是一个很好的解决方案,因为它没有在日期选择器上禁用今天之后的任何日期。此解决方案仅检查所选日期,如果所选日期在指定日期(即今天)之后,它将返回今天日期的值