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

controlFXML を使用してカレンダー コンポーネントを再設計しました。ピッカー メニューを使用し、それに changelistener (誰がプロパティであるか)XCalendarPickerを追加します。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 に答える