1

我正在使用 toedter 的 jCalendar 并在使用以下代码单击日期按钮时触发事件:

  JDayChooser jdc = jCalendar.getDayChooser();
  jdc.addPropertyChangeListener("day", new PropertyChangeListener() {
       @Override
       public void propertyChange(PropertyChangeEvent e) {
           date = jCalendar.getDate();
           new AgendaFrame(date, user).setVisible(true);  
       } 
  }); 

问题是当 jCalendar 启动时,与当前日期匹配的按钮已经被按下,因此,我无法按下它进入我的议程框架。有什么想法可以解决这个问题吗?

4

1 回答 1

1

问题是当 jCalendar 启动时,与当前日期匹配的按钮已经被按下,因此,我无法按下它进入我的议程框架。有什么想法可以解决这个问题吗?

要解决此问题,您必须使用setAlwaysFireDayProperty(boolean alwaysFire)方法来设置此属性 true

JCalendar calendar = new JCalendar();        
JDayChooser dayChooser = calendar.getDayChooser();
dayChooser.setAlwaysFireDayProperty(true); // here is the key
dayChooser.addPropertyChangeListener("day", ...);

这样,如果您按下某个按钮(例如,今天),无论该按钮是否已被按下,都会触发属性事件。

public void setAlwaysFireDayProperty(boolean alwaysFire)

这是 JDateChooser 所需要的。

参数:

alwaysFire- true,如果每次选择一天时都会触发 day 属性。

于 2013-12-02T23:09:15.000 回答