0

スケジュールを表示および変更するカレンダーを作成しようとしています。これを行うには、そのカレンダーのいくつかの日付の色を変更する必要があります。を作成し、日付を強調することができたに従いました。RangeEvaluator問題は、その日付をクリックすると (たとえば、ビジーからフリーに変更するために必要な場合)、その色が通常に戻ることです。これが私のコードです:

RangeEvaluator evaluator = new RangeEvaluator();
//get dates from DB:
    Vector<Date> vd=SA.getCalendrier(transport);
    evaluator.setVd(vd);
    calendar.getDayChooser().addDateEvaluator(evaluator);
4

1 に答える 1

1

hereに示すようにIDateEvaluator、日付を強調するために特定の前景色と背景色を返している可能性があります。強調表示された日付ボタンをクリックすると、前景色が設定されたままになることに注意してください。対照的に、ここで説明したように、背景色は選択したルック アンド フィールに属します。前景色とツールチップに頼っています。背景色の強調表示はオプションと考えています。

ここに示されている回避策として、バインドされたプロパティをPropertyChangeListenerに設定してボタンを再構成できますが、選択したボタンは引き続きルック アンド フィールに従ってレンダリングされます。強調表示されていないボタンを選択して、効果を確認します。

JCalendar jc = new JCalendar();
jc.getDayChooser().addDateEvaluator(evaluator);
jc.setDate(Calendar.getInstance().getTime());
jc.addPropertyChangeListener("calendar", new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent e) {
        jc.setDate(Calendar.getInstance().getTime());
        …
    }
});

より一般的には、 は day plannerJCalendarではなく、 date chooserであることに注意してください。

于 2016-06-19T16:43:58.957 に答える