JDatePicker 是一个用于选择日期的开源 Java GUI 组件
http://sourceforge.net/projects/jdatepicker/
当我将二月设置为创建组件后的月份时,似乎有一个错误。所有其他月份都正常工作。
package jat.examples.DatePicker;
import jat.jdatepicker.JDateComponentFactory;
import jat.jdatepicker.JDatePicker;
import javax.swing.JApplet;
import javax.swing.JComponent;
public class DatePickerExample extends JApplet{
private static final long serialVersionUID = 1920676464239324135L;
JDatePicker depart_date_picker;
public void init() {
depart_date_picker = JDateComponentFactory.createJDatePicker();
depart_date_picker.setTextEditable(true);
depart_date_picker.setShowYearButtons(true);
add((JComponent) depart_date_picker);
}
public void start() {
depart_date_picker.getModel().setYear(2010);
depart_date_picker.getModel().setMonth(1);
//depart_date_picker.getModel().setMonth(1);
depart_date_picker.getModel().setDay(15);
depart_date_picker.getModel().setSelected(true);
}
}
它不是显示二月,而是显示三月。
在调试器中,我注意到 oldValue 为空。
public void setMonth(int month) {
int oldMonthValue = this.calendarValue.get(Calendar.MONTH);
T oldValue = getValue();
calendarValue.set(Calendar.MONTH, month);
fireChangeEvent();
firePropertyChange("month", oldMonthValue, this.calendarValue.get(Calendar.MONTH));
firePropertyChange("value", oldValue, getValue());
}
果然,当我调用该方法两次时,它正确显示了二月。
depart_date_picker.getModel().setMonth(1);
depart_date_picker.getModel().setMonth(1);
可能是变量初始化问题。我是正确的,有人可以解决这个问题,还是我错误地使用了库?