簡體   English   中英

如何設置jSpinner的默認值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM