ロゴ

プログラミング初心者がアプリ開発を目指すブログ

日付入力ボックスを作る Java Swing JSpinnerの使い方 – Javaでデスクトップトップアプリ(予定&ToDo管理)を作る-015

今回は、Java Swingで日付入力ボックスをつくる方法を見ていきます。
JSpinnerというクラスを使用していきます。
JSpinnerは日付や値段など連続したデータを選択するときに便利なボックスです。
さっそく使い方を見ていきます。

JSpinnerの使い方

まずは、
SpinnerModelクラスでSpinner内のモデルを作成します。

例えば、
String[] country = {“Japan”, “US”, “UK”};
SpinnerListModel model = new SpinnerListModel(country);
で「Japan」「US」「UK」のリストをSpinner内に入れることができます。

数字データをSpinnerに入れたいときには、
SpinnerNumberModel model = new SpinnerNumberModel(Number value, Comparable minimum, Comparable maximum, Number stepSize)
これで、value – 初期値
   minimum – 先頭の数値
   maximum – 最後の数値
   stepSize – 要素間の差
のデータを作ることができます。

日付のデータのときは、
SpinnerDateModel model =new SpinnerDateModel(Date value,Comparable start,Comparable end,int calendarField)
これで、value – モデルの現在の値 (null 以外)
   start – 先頭の日付または null
   end –  最後の日付または null
   calendarField - クリックで変化する値の幅(Calendar.DAY_OF_MONTHなど)
のデータを作ることができます。

これらのSpinnerModelを作成した後、
JSpinner spinner = new JSpinner(model);
でJSpinnerボックスを作ることができます。

日付の表示を変えるには、
JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, “yyyy.MM.dd”);
spinner.setEditor(editor);
等とします。

Java.util.Dateオブジェクトを取り出したいときには(注 以前に自作したDateクラスは削除しています。)
Date value = model.getDate();
で値を取り出すことができます。

実際に日付ボックスを作成

それでは、AddModeFrameに追加していきましょう。


~今までのコード~
JLabel label3 = new JLabel("日付:");
label3.setBounds(30,110,60,30);

Calendar calendar = Calendar.getInstance();
Date initDate = calendar.getTime();//今日の日付を初期値にする(注Java.utilのDateです)
calendar.set(2016, 1, 1, 0, 0);
Date startDate = calendar.getTime();//2016/1/1を最低値にする(注Java.utilのDateです)

SpinnerModel model = 
new SpinnerDateModel(initDate, startDate, null, Calendar.DAY_OF_MONTH);
JSpinner spinner = new JSpinner(model);
JSpinner.DateEditor editor = new JSpinner.DateEditor(spinner, "yyyy.MM.dd");
spinner.setEditor(editor);
spinner.setBounds(100,110,200,30);
panel.add(spinner);

実行してみると、
JSpinnerを追加

アプリ開発記の次の記事はこちら => コンボボックスを作る JComboBoxの使い方 – Javaでデスクトップトップアプリ(予定&ToDo管理)を作る-016

スポンサード リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA