torutkのブログ

ソフトウェア・エンジニアのブログ

JavaFXでカレンダー表示プログラムを作る(DatePickerのポップアップ利用)(続々々々々々)

JavaFXでカレンダー表示プログラムを作る(DatePickerのポップアップ利用)(続々々々々) - torutkのブログ の続きです。

土曜日と日曜日にそれぞれ青、赤色で表示する設定をCSSに記述しました。
しかし、カレンダー表示月の前月/翌月の部分の土曜日と日曜日も、青、赤色で表示されてしまいます。

そこで、CSS定義を修正して、カレンダー表示月の前月/翌月部分の日付の表示色は土曜日、日曜日かどうかによらず、同じ色とするようにしました。

修正前のカレンダー表示 修正後のカレンダー表示

次のように、曜日のスタイル・クラス指定を追加し、またCSS設定の最後に持っていくことで反映することができました。

/* 先月および今月の日付の文字色を目立たなく(淡く)する */
.date-picker-popup > * > .next-month,
.date-picker-popup > * > .next-month.sunday,
.date-picker-popup > * > .next-month.saturday,
.date-picker-popup > * > .previous-month,
.date-picker-popup > * > .previous-month.sunday,
.date-picker-popup > * > .previous-month.saturday {
    -fx-text-fill: derive(-fx-text-base-color, 80%);
}

メモ

  • JavaFXCSSでは、擬似クラス :not が使えないようです(JavaFX CSSのリファレンスガイドを見ると、使用できる擬似クラスにnotがない)。これが使えると設定がやりやすかったのですが。
  • .date-picker-popup > * > .day-cell.sunday のセレクタ指定の定義と、.date-picker-popup > * > .next-month.sunday のセレクタ指定の定義とを記述した際、あとから指定した方が有効になってしまいます。CSSのお約束でしたが・・・