Question

I'm using the toedter's jCalendar and triggering events when the day buttons are clicked using the following code:

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

The thing is that when jCalendar initiates, the button which matches the current date is already pressed and so, I'm unable to press it to go to my agenda frame. Any ideas to solve this?

Was it helpful?

Solution

The thing is that when jCalendar initiates, the button which matches the current date is already pressed and so, I'm unable to press it to go to my agenda frame. Any ideas to solve this?

To solve this problem you have to use setAlwaysFireDayProperty(boolean alwaysFire) method to set this property true:

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

This way if you press some button (for instance, today) the property event will be fired regardless the button was already pressed.

public void setAlwaysFireDayProperty(boolean alwaysFire)

this is needed for JDateChooser.

Parameters:

alwaysFire - true, if day property shall be fired every time a day is chosen.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top