javafx 가져 오기에서 DatePicker가 있습니다. 그러나 Calendar 속성이 포함되어 있어야합니다. 그래서 DatePicker를 확장하는 사용자 지정 컨트롤을 만들었습니다.사용자 정의 컨트롤을 만들려고 할 때 값이 변경되었을 때 알려야합니다.
그러나 언제나 datepicker가 변경 될 때마다이 속성을 호출해야합니다. 그 이유는 onAction 이벤트가 수행 될 때 .notify 메서드를 사용해야한다는 것입니다. java.lang.IllegalMonitorStateException
예외가 발생합니다.
public class DatePickerControl extends DatePicker
{
private ObjectProperty<Calendar> calendar;
public DatePickerControl() {
super();
setValue(LocalDate.now());
}
/**
* Get the value of calendar
*
* @return the value of calendar
*/
public ObjectProperty<Calendar> calendarProperty() {
Calendar calendar = new GregorianCalendar();
System.out.println("test");
calendar.set(getValue().getYear(), getValue().getMonthValue(), getValue().getDayOfMonth());
return new SimpleObjectProperty<>(calendar);
}
/**
* Set the value of calendar
*
* @param calendar new value of calendar
*/
public void setCalendar(Calendar calendar) {
this.calendar.set(calendar);
LocalDate ld = LocalDate.now();
ld.withYear(calendar.get(Calendar.YEAR));
ld.withMonth(calendar.get(Calendar.MONTH));
ld.withDayOfMonth(calendar.get(Calendar.DAY_OF_MONTH));
setValue(ld);
}
public Calendar getCalendar() {
return calendar.get();
}
}
을하고 내가 .notify()를 호출 : 자바 FX의 새로운
dpAgendaRange.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
t.notify();
}
});
내가 그렇게 내 사과는 IF
이
내가이 사용자 정의 제어를 위해 사용하고있는 코드입니다 코드는 구조적이지 않습니다.
많은 감사를, 이게 정말 도움이되었습니다. 좋은 설명뿐. –