[英]how to set jSpinner default value?
我正在使用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
應自動(根據您的設置)設置值的格式。
話雖如此,我確實需要在設置模型時使“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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.