今日以降の日付のみを選択するようにユーザーを制限しようとしています。または、次々Date
に日付を選択するようにしています。JCalendarAPIで
役立つ情報が表示されますが、何も見つかりませんでした。どうすればよいですか。
質問する
6092 次
1 に答える
7
コンポーネントでこれを行う簡単な方法はないと思います。私が知っている1つの方法は、使用する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",...);
于 2012-04-05T05:16:24.343 に答える