如何设置 jSpinner 默认值?
how to set jSpinner default value?
我正在使用 jSpinner 设置格式为 "HH:MM" 的时间,它工作正常。
我的问题是我想在激活 window 时将我的 jSpinner 设置为“00:00”,一旦单击 jSpinner,我希望将值更改为 "HH:MM" 格式.而且我自己做不到,jSpinner 值没有改变,它仍然是“00:00”。
请帮我。提前谢谢你。
假设您使用的是 SpinnerDateModel
,那么 JSpinner
管理的值是 java.util.Date
。您需要创建一个 Date
实例,它的 hour/minute 字段设置为午夜
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());
but how can I set it with "00:00" when the window is activated
在没有更多信息的情况下,我建议使用某种 WindowListener
,假设您不是每次都创建 window。
看看How to Write a Focus Listener and How to Write Window Listeners
And changed the value once clicked?
这有点不清楚,但您应该在需要知道它是什么并根据您的需要设置格式时从 JSpinner
中获取值。 JSpinner
应该会在值更新时自动(根据您的设置)格式化值。
话虽如此,我确实需要在设置模型时使"start"(或最低值)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);
我正在使用 jSpinner 设置格式为 "HH:MM" 的时间,它工作正常。
我的问题是我想在激活 window 时将我的 jSpinner 设置为“00:00”,一旦单击 jSpinner,我希望将值更改为 "HH:MM" 格式.而且我自己做不到,jSpinner 值没有改变,它仍然是“00:00”。 请帮我。提前谢谢你。
假设您使用的是 SpinnerDateModel
,那么 JSpinner
管理的值是 java.util.Date
。您需要创建一个 Date
实例,它的 hour/minute 字段设置为午夜
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());
but how can I set it with "00:00" when the window is activated
在没有更多信息的情况下,我建议使用某种 WindowListener
,假设您不是每次都创建 window。
看看How to Write a Focus Listener and How to Write Window Listeners
And changed the value once clicked?
这有点不清楚,但您应该在需要知道它是什么并根据您的需要设置格式时从 JSpinner
中获取值。 JSpinner
应该会在值更新时自动(根据您的设置)格式化值。
话虽如此,我确实需要在设置模型时使"start"(或最低值)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);