0

JSpinner を作成し、SpinnerDateModel をこのようにリンクしました。

 travelTimeModel = new SpinnerDateModel();
 travelTimeModel.setCalendarField(Calendar.MINUTE);

 spinnerTravelTime = new JSpinner();
 spinnerTravelTime.setModel(travelTimeModel);
 spinnerTravelTime.setEditor(new JSpinner.DateEditor(spinnerTravelTime, "HH:mm"));

コードをロードすると、JSpinner は現在の時刻を表示するので、この部分は機能します。

ただし、受信した Calendar オブジェクトに応じて JSpinner の値を変更したいのですが...

カレンダー オブジェクトから JSpinner への時間を変更/追加するにはどうすればよいですか? また、JSpinner から Calendar オブジェクトに時間を読み取るにはどうすればよいですか?

4

2 に答える 2

1

フィードバックを使用して、次の解決策を作成しました。

    DateFormat dateFormat = new SimpleDateFormat("HH:mm");
    try {
        Date date = dateFormat.parse("00:00");
        travelTimeModel.setValue(date);
    } catch (ParseException e) {
        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
    }
于 2013-11-08T22:29:06.110 に答える
1

Spinner Date モデルは、Calender インタラクションを直接サポートしていません。ただし、Calender インスタンスから Date を作成して操作することはできます。

public SpinnerDateModel(Date value,  Comparable start, Comparable end, int calendarField)

そして、値を変更する必要がある場合は、次を使用する必要があります。

public void setCalendarField(int calendarField)

およびメソッドによって計算された値sizeの変更を変更します。カレンダー フィールドは次のいずれかです。datenextValuepreviousValue

Calendar.ERA
Calendar.YEAR
Calendar.MONTH
Calendar.WEEK_OF_YEAR
Calendar.WEEK_OF_MONTH
Calendar.DAY_OF_MONTH
Calendar.DAY_OF_YEAR
Calendar.DAY_OF_WEEK
Calendar.DAY_OF_WEEK_IN_MONTH
Calendar.AM_PM
Calendar.HOUR
Calendar.HOUR_OF_DAY
Calendar.MINUTE
Calendar.SECOND
Calendar.MILLISECOND 

詳細については、SpinnerDateModelドキュメントを参照してください。

于 2013-11-08T22:17:18.720 に答える