0

アクションリスナーをjcalendarに追加するにはどうすればよいですか? 1 日にクリックするたびに日付を取得したいので、日付全体を jtextfield に表示します。このようなことを試してみましたが、1日クリックしても何もしません。

    cal = new JCalendar();
    cal.setWeekOfYearVisible(false);
    cal.getDayChooser().getDayPanel().addPropertyChangeListener(new PropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent e) {
            System.out.println(e.getPropertyName()
                    + ": " + (Date) e.getNewValue());

        }
    });

この質問に対する回答のコードも試しましたが、これは似ていますが、何もありません。 jCalendar への actionListener の追加

4

1 に答える 1

1

プロパティ変更リスナーを間違った Bean に追加していると思います。JCalendar コードを調べたところ、getDayPanel() メソッドは、関心のある「日」プロパティを認識していないと思われる通常の JPanel を返します。

 /**
 * Returns the day panel.
 * 
 * @return the day panel
 */
public JPanel getDayPanel() {
    return dayPanel;
}

プロパティ変更リスナーを daychooser 自体に追加する必要があると思います。これは、「日」プロパティを知っているクラスです。また、day chooser の「day」プロパティに登録することもできます。

    cal = new JCalendar();
    cal.setWeekOfYearVisible(false);
    cal.getDayChooser().addPropertyChangeListener("day", new PropertyChangeListener() {

    @Override
    public void propertyChange(PropertyChangeEvent e) {
        System.out.println(e.getPropertyName()
                + ": " + e.getNewValue());

    }
});

それでも、日付全体ではなく、ユーザーが選択した日のみが表示されます。

于 2013-12-03T19:20:29.723 に答える