I have problems with DateSpinner that have date bounds set using setStart setEnd methods of SpinnerDateModel
here is code
- Code: Select all
DateSpinner timeSpinner = new DateSpinner("HH:mm:ss");
timeSpinner.setAllowsInvalid(true);
((SpinnerDateModel)timeSpinner.getModel()).setStart(new Date());
with this code the spinner doesn't work anymore I can't use uo/down buttons to spinn dates nor set values by typing into text field
I dig into this problem and it turn outs that this is probably Swing bug here is code
- Code: Select all
Calendar now = Calendar.getInstance();
Calendar start = Calendar.getInstance();
start.set(Calendar.HOUR_OF_DAY, now.get(Calendar.HOUR_OF_DAY));
start.set(Calendar.MINUTE, now.get(Calendar.MINUTE));
start.set(Calendar.SECOND, now.get(Calendar.SECOND));
start.set(Calendar.MILLISECOND, now.get(Calendar.MILLISECOND));
start.add(Calendar.MINUTE, -10);
Calendar end = Calendar.getInstance();
end.set(Calendar.HOUR_OF_DAY, now.get(Calendar.HOUR_OF_DAY));
end.set(Calendar.MINUTE, now.get(Calendar.MINUTE));
end.set(Calendar.SECOND, now.get(Calendar.SECOND));
end.set(Calendar.MILLISECOND, now.get(Calendar.MILLISECOND));
end.add(Calendar.MINUTE, 10);
JSpinner spinner = new JSpinner(new SpinnerDateModel(now.getTime(),start.getTime(),end.getTime(),Calendar.MINUTE));
//comment those two lines and it works
JSpinner.DateEditor de = new JSpinner.DateEditor(spinner, "HH:mm:ss.SSS");
spinner.setEditor(de);
if in above code I use default DateEditor with default date format it works correctly but if I set DateEditor calling spinner.setEditor(de) I can't change date value anymore
Do you know any workaround for this ?
Thx
Chris