0

如何收听 JFXtras 中 CalendarTextField 的变化?例如,从选择器菜单中选择的新日期或输入的日期?

    date.addEventFilter(MouseEvent.ANY, new EventHandler<Event>() {

        @Override
        public void handle(Event arg0) {
            System.out.println("EVENT");

        }
    });

给我鼠标在场内的每一个动作。我没有找到另一个有意义的 eventType。

我还考虑在窗口中添加此事件过滤器,并在每次单击窗口时检查所选日期。但这不可能是正确的方法。

4

2 回答 2

2

好的,在这里找到它:

    date.valueProperty().addListener(new ChangeListener<Calendar>() {
        @Override
        public void changed(
                ObservableValue<? extends Calendar> observableValue,
                Calendar oldValue, Calendar newValue) {
            System.out.println(oldValue + " -> " + newValue);
        }
    });

我没有意识到在 FX 中必须将侦听器设置为属性,而不是像 Swing 中那样设置为组件。

于 2013-06-11T09:34:11.930 回答
0

control我用 FXML重新设计了一个日历组件,为我使用的选择器菜单XCalendarPicker添加了一个 changelistener calendar()(谁是一个属性)。当日期改变时,我用新的更新我的文本字段Date

final XCalendarPicker calendarPicker = new XCalendarPicker();

final ChangeListener<Calendar> calendarListener = new ChangeListener<Calendar>() {

            @Override
            public void changed(ObservableValue<? extends Calendar> observable, Calendar oldValue, Calendar newValue) {
                Date date = newValue.getTime();
                setDate(date);
            }
        };

        calendarPicker.calendar().addListener(calendarListener);
于 2013-06-11T09:14:49.930 回答