JXDatePickerにっぃて
JXDatePickerゎSwingのコンポーネントで、
カレンダーから日付を選ぶUIをかんたんに追加できます
同様のものゎ名前まで似てるJDatePickerとかぁるんですけど、
派生とかじゃなくてぜん②ちがぅものみたぃです
ただ選択させて、日付を取得するだけの
ぃちばんシンプルな使ぃ方だと、こんなかんじです
public class Calendar extends JPanel {
private JXDatePicker datePicker;
public Calendar(){
datePicker = new JXDatePicker();
add(datePicker);
}
public Date getDate(){
return datePicker.getDate();
}
}
選択可能な日付を制限する
日付の計算と指定
今回ゎ、明日以降の1週間だけを選択可能にしてみることにします
まず明日とか1週間後とかを計算しなきゃですが、
Apache Commons LangのDateUtils
クラスをっかぅと、
日付の計算もとてもかんたんにできます
https://gist.github.com/ayapi/7592669 Line:2
DateUtils
クラスでの明日と1週間後の計算ゎこんなかんじでかんたんです
https://gist.github.com/ayapi/7592669 Line:15-16
もし昨日とかがほしければaddDays
で負の値を足せばできます
それでJXDatePicker
のインスタンスに、
ぃっからぃっまで選択可能にするのかを指定しますhttps://gist.github.com/ayapi/7592669 Line:18-20
みためを整ぇる
以上のコードで動くにゎ動くんですけど、
デフォだと、バツ印が真っ赤で、ちょっと派手すぎって思ぅ時がぁります
バツ印の色を変ぇるにゎUIManager
のUIプロパティで色を指定します
https://gist.github.com/ayapi/7592669 Line:22
このょーにUIプロパティーを変ぇた時ゎ、
値を変ぇたことをUIに適用(更新)するのが必要で、JComponent
のupdateUI()
メソッドもしくゎSwingUtilities.updateComponentTreeUI()
どちらかをっかぃます
それで適用してみると、バツの色がちゃんと変ぇれました!
Syntheticaをぁててる時の注意
ちょっと話ずれるんですけど、
Swingのみためを一気にかっこょくしてくれる
Syntheticaってゅーテーマ集がぁります
ぁゃぴもBlackEyeを入れてテンションをぁげてます
けどSyntheticaをふつーに入れてるだけだと、
JXDatePickerがそも②動きません!
まったくぉなじエラーで困ってる人がぃました
jxdatepicker with Synthetica Aluoxide look and feel not working - Stack Overflow
Syntheticaをっかってる状態でJXDatePickerを動かすにゎ
SyntheticaAddonsも入れれば動くょーになります
ちなむとSynthetica BlackEyeをぁてたらこんなかんじです
ゃっぱかっこぃぃ\(^o^)/
完成ばん
てことで、できたコードがこれですー\(^o^)/