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 会显示当前时间,所以这部分可以工作。

但是我想根据收到的日历对象更改 JSpinner 的值...

如何将日历对象中的时间更改/添加到 JSpinner 以及如何将 JSpinner 中的时间读取到 Calendar 对象中?

4

2 回答 2

1

Spinner Date 模型不直接支持 Calender 交互。但是,您可以从 Calender 实例创建 Date 并使用它:

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

然后,如果您需要更改该值,则必须使用:

public void setCalendarField(int calendarField)

函数,它改变由和方法计算sizedate值变化。日历字段是以下之一:nextValuepreviousValue

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 回答
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 回答