2

JDateChooser で過去の日付を無効にするか、非表示にするか、選択できないようにしたい。どうすればこれを作ることができますか?使ってみましたがうまくいき.setSelectableDateRangeません。私も試し.setMinSelectableDate()ましたが、まだ運がありません。わかりませんが、コードの提案に表示されないため、netbeans はそれらを認識していないようです。私はこのように使用しています:

public void dateset() {
    jDateChooser1.getCalendar(). //What to put here? It doesn't have .setSelectableRange
}

私はこれで見つけたものだけを試しました: How to show only date after the date of today in JCalendar

その投稿はすでに古くなっていると思います。助けてください。

4

2 に答える 2

6

ここ:

jDateChooser1.getCalendar().

日付の境界をjava.util.Calendarオブジェクトに設定しようとしていますが、これは不可能です。JCalendarオブジェクトを返すgetJCalendar()と混同しているかもしれません。

jDateChooser1.getJCalendar().setMinSelectableDate(new Date()); // sets today as minimum selectable date

日付チューザーで選択可能な最小日付を直接設定できることに注意してください。

jDateChooser1.setMinSelectableDate(new Date()); // sets today as minimum selectable date

ソースJDateChooserコードを調べると、このメソッドがJCalendarオブジェクトに転送されていることがわかります。

public class JDateChooser extends JPanel implements ActionListener,
        PropertyChangeListener {

    protected IDateEditor dateEditor;
    protected JCalendar jcalendar;

    ...

    public void setMinSelectableDate(Date min) {
        jcalendar.setMinSelectableDate(min);
        dateEditor.setMinSelectableDate(min);
    }

    ...
}

また、実際にこの日付検証全体の鍵となるIDateEvaluatorインターフェイスをよりよく理解するために、Java カレンダーで日付を無効または強調表示する方法を参照することもできます。

于 2014-03-01T14:24:26.920 に答える