【问题标题】:Adding actionListener to jCalendar将 actionListener 添加到 jCalendar
【发布时间】:2013-04-01 01:16:50
【问题描述】:

如何将 actionListener 添加到使用 netbeans 放置的现有 jCalendar 的 jDayChooser 组件中?

我只想仅在单击日期按钮时触发事件。因为 jCalendar 中的 propertyChange 甚至会监听 jMonthChooser 和 jYearChooser

附:使用 toedter 的 jCalendar

【问题讨论】:

标签: java swing awt actionlistener jcalendar


【解决方案1】:

或者,您可以监听特定的propertyName"day"

JDayChooser jdc = new JDayChooser();
jdc.addPropertyChangeListener("day", new PropertyChangeListener() {
    @Override
    public void propertyChange(PropertyChangeEvent e) {
        System.out.println(e.getPropertyName()+ ": " + e.getNewValue());
    }
});

附录:如何让它在JCalendar 上工作

同样,propertyName"calendar" 代表一个Calendar,您可以从中get() DAY_OF_MONTH

JCalendar jc = new JCalendar();
jc.addPropertyChangeListener("calendar", new PropertyChangeListener() {

    @Override
    public void propertyChange(PropertyChangeEvent e) {
        final Calendar c = (Calendar) e.getNewValue();   
        System.out.println(c.get(Calendar.DAY_OF_MONTH));   
    }
});

【讨论】:

  • 或 Changelistener 或 ItemListener 对我有用(在某些版本中可能是 MXxxListener)
  • 它与 JDayChooser 一起工作,但我如何让它在 JCalendar 上工作
  • 啊,我明白了;我已经根据对问题的仔细阅读更新了答案。
  • @JLawrence 不存在 ChangeListener 或 MChangeListener,如果是则使用它(使用旧版本,根据代码源稍作修改)
  • @mKorbel:我只有两个依赖项目:一个升级干净,另一个取消了临时修复 cited here
【解决方案2】:

以防有人错过阅读 cmets。这是一个示例工作代码。

JCalendar jCalendar = new JCalendar();
jCalendar.getDayChooser().addPropertyChangeListener("day", new PropertyChangeListener() {
   @Override
   public void propertyChange(PropertyChangeEvent e) {
      System.out.println(e.getPropertyName()+ ": " + e.getNewValue());
   }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 2015-02-05
    • 2017-04-07
    • 2014-08-29
    • 2014-10-26
    • 1970-01-01
    相关资源
    最近更新 更多