如何在jCalendar中设置“关闭”所有切换日按钮?

时间:2013-12-02 20:53:32

标签: java swing jcalendar

我正在使用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启动时,已按下与当前日期匹配的按钮,因此,我无法按此按钮进入我的议程框架。有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分: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 - 如果每天选择一天,则会触发日财产。