0
我創建了以下類,它擴展了JSpinner
以迭代dd/mm/yyy值。自定義JSpinner
public class DateSpinner extends JSpinner{
Calendar calendar = new GregorianCalendar();
public DateSpinner(){
super();
calendar.add(Calendar.DAY_OF_YEAR, 1);
Date now = calendar.getTime();
calendar.add(Calendar.DAY_OF_YEAR, -2);
Date startDate = calendar.getTime();
calendar.add(Calendar.YEAR, 100);
Date endDate = calendar.getTime();
SpinnerDateModel dateModel = new SpinnerDateModel
(now , startDate , endDate , Calendar.DAY_OF_MONTH);
setModel(dateModel);
JFormattedTextField tf =
((JSpinner.DefaultEditor)getEditor()).getTextField();
DefaultFormatterFactory factory =
(DefaultFormatterFactory)tf.getFormatterFactory();
DateFormatter formatter = (DateFormatter)factory.getDefaultFormatter();
// Change the date format to only show the hours
formatter.setFormat(new SimpleDateFormat("dd/MM/yyyy"));
}
}
我的問題是,當我使用
Date today = new Date();
spinner.setValue(today);
我得到包括一週的時間,一天的日期設置其值。如果我觸摸微調器,它會根據我設置的格式進行格式化。我怎樣才能最初得到我想要顯示的格式?
而且,如果您正在使用Java8 API,則可以使用`LocalDate`和`LocalDateTime`類。 – 2016-07-31 15:28:01