Я хочу создать новый класс скина для DatePicker
. После различных инструкций о том, как это сделать, например, guigarage правильный путь, чтобы расширить SkinBase
и загрузить новый класс кожи, установив -fx-skin
свойство имени класса кожи, так что я сделал, но я получил эту ошибку:Как создать новый скин для `DatePicker`, javafx
Exception in thread "JavaFX Application Thread" java.lang.ClassCastException: sample.myDatePickerSkin cannot be cast to com.sun.javafx.scene.control.skin.DatePickerSkin
at com.sun.javafx.scene.control.behavior.DatePickerBehavior.onAutoHide(DatePickerBehavior.java:103)
и если вы посмотрите на DatePickerBehavior.java:103
:
@Override public void onAutoHide() {
// when we click on some non-interactive part of the
// calendar - we do not want to hide.
DatePicker datePicker = (DatePicker)getControl();
DatePickerSkin cpSkin = (DatePickerSkin)datePicker.getSkin();
cpSkin.syncWithAutoUpdate();
// if the DatePicker is no longer showing, then invoke the super method
// to keep its show/hide state in sync.
if (!datePicker.isShowing()) super.onAutoHide();
}
Так что я сделал что-то неправильно? или я также должен написать myDatePickerBehavior
?
Обратите внимание: com.sun.javafx.scene.control.skin.BaseSkin не является общедоступным API. – Puce