2016-04-16 7 views
0

Ich versuche, einen Kalender zu erstellen, um einen Zeitplan anzuzeigen und zu ändern. Um dies zu tun, muss ich die Farbe einiger Daten in diesem Kalender ändern. Ich habe examples gefolgt, die RangeEvaluator erstellt und geschafft, die Daten zu markieren. Das Problem ist, dass, wenn ich auf dieses Datum klicke (und ich es ändern muss, um es zum Beispiel von beschäftigt zu ändern), seine Farbe wieder normal wird. Hier ist mein Code:
Refresh RangeEvaluator in einem JCalendar

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

Bearbeiten Sie Ihre Frage so, dass sie eine [mcve] enthält, die das von Ihnen beschriebene Problem aufweist. – trashgod

Antwort

1

Wie here gezeigt, Ihre IDateEvaluator ist wahrscheinlich spezifische Vordergrund- und Hintergrundfarben der Rückkehr der Daten zu markieren. Beachten Sie, dass die Vordergrundfarbe festgelegt bleibt, wenn Sie auf eine hervorgehobene Datumsschaltfläche klicken. Im Gegensatz dazu, wie erwähnt here, gehört die Hintergrundfarbe zum gewählten Look & Feel. Ich würde mich auf Vordergrundfarbe und Tooltip verlassen; Ich würde die Hintergrundfarbenhervorhebung als optional betrachten.

Als Abhilfe kann gezeigt here, können Sie eine gebundene Eigenschaft in Ihrem PropertyChangeListener stellen Sie die Tasten, aber die gewählte Taste wird noch gemacht wird nach dem Blick & Gefühl neu zu konfigurieren. Wählen Sie eine Schaltfläche, die nicht markiert ist, um den Effekt zu sehen.

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()); 
     … 
    } 
}); 

Allgemeiner beachten Sie, dass JCalendar ist ein Datum Chooser, kein Tag Planer.