Java 如何设置jSpinner默认值?

Java 如何设置jSpinner默认值?,java,netbeans,jspinner,Java,Netbeans,Jspinner,我使用jSpinner以格式“HH:MM”设置时间,效果很好 我的问题是,当窗口被激活时,我想将我的jSpinner设置为“00:00”,单击jSpinner后,我想将该值更改为“HH:MM”格式。我自己做不到,jSpinner值没有改变,它仍然是“00:00”。 请帮帮我。提前谢谢。假设您使用的是SpinnerDateModel,那么JSpinner管理的值是java.util.Date。您需要创建一个Date实例,该实例的小时/分钟字段设置为午夜 Calendar cal = Calenda

我使用jSpinner以格式“HH:MM”设置时间,效果很好

我的问题是,当窗口被激活时,我想将我的jSpinner设置为“00:00”,单击jSpinner后,我想将该值更改为“HH:MM”格式。我自己做不到,jSpinner值没有改变,它仍然是“00:00”。
请帮帮我。提前谢谢。

假设您使用的是
SpinnerDateModel
,那么
JSpinner
管理的值是
java.util.Date
。您需要创建一个
Date
实例,该实例的小时/分钟字段设置为午夜

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);

Date date = cal.getTime();
spinner.setValue(date);
要从
JSpinner
获取值的格式,可以使用
SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String value = sdf.format(spinner.getValue());
但是,当窗口被激活时,如何将其设置为“00:00”

如果没有更多信息,我建议使用某种类型的
WindowListener
,假设您每次都不创建窗口

看一看

并在单击后更改了值

这有点不清楚,但您应该在需要知道它是什么以及基于您的需要的格式时,从
JSpinner
获取值。更新值时,
JSpinner
应负责自动格式化值(基于您的设置)

话虽如此,在设置模型时,我确实需要将“开始”(或最低值)
null
,这似乎允许微调器更新时间值

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);

Date startTime = cal.getTime();
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 59);
Date endTime = cal.getTime();

System.out.println(startTime);
System.out.println(endTime);

// The Calendar field seems to get ignored and overriden 
// by the UI delegate based on what part of the field
// the cursor is current on (hour or minute)
SpinnerDateModel model = new SpinnerDateModel(startTime, null, endTime, Calendar.MINUTE);
JSpinner spinner = new JSpinner(model);
spinner.setEditor(new JSpinner.DateEditor(spinner, "HH:mm"));

spinner.setValue(startTime);

是的,但是当窗口被激活时,我如何将其设置为“00:00”?单击后是否更改了值?第一部分将取决于您如何建立窗口;第二部分应该由它自己来处理@MadProgrammer,谢谢。我有了一个主意,这是一个很大的帮助