我不認爲在組件上有一個簡單的方法來做到這一點。 我知道的一種方法是使用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);
這將禁用任何日期的選擇當前日期之前和之後的2015年5月5日
注意,此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",...);
最小值,最大值和範圍的方法在'IDateEditor'接口中指定使用。 – trashgod 2012-04-05 10:44:32
有兩個庫jcalendar。其中一個方法setSelectableDataRange被定義,但沒有定義addDateListener。在另一個是定義addDateListener但不是setSelectableDataRange ..我該如何解決它?我需要他們的方法。否則,如果我使用定義了setSelectableDateRange的庫,如何從用戶點擊日期以便將該日期添加到jtextfield? – JackTurky 2012-04-05 12:17:00
@ user1190704 - 哼!這很棘手。請在編輯答案中查詢代碼。 – 2012-04-05 12:58:55