gpt4 book ai didi

java - JCalendar 和 PropertyChangeListener : event is not fired for current day

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:06 25 4
gpt4 key购买 nike

我正在使用 JCalendar 并使用 PropertyChangeListener 设置监听器。我的问题是,这个监听器不会响应当天的事件,我认为是因为属性没有变化。我希望它能够响应选择今天的日期,因为日历会导致日记。打开时,我仍然希望日历在“今天”的日期打开,但要有一个监听器来响应按下“今天”的日期。我的监听器代码如下:

final JCalendar calendar = new JCalendar();

calendar.getDayChooser().addPropertyChangeListener("day", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent e) {

if(Calendar.AddJob!=1){
JOptionPane.showMessageDialog(null,"No Entry Found");
frame.dispose();
String date = EditDate(calendar.getDate().toString());
WorkDiary.WorkDiaryGui(date);
}

if(Calendar.AddJob==1){
String date = EditDate(calendar.getDate().toString());
Calendar.AddJob=0;
frame.dispose();
WorkDiaryAddJob.WorkDiaryAddJobGui(CalReg, date);
}
}
});

最佳答案

My problem is that this listener will not respond to an event on the current day, I assume because there is no change in the property.

您的假设是正确的:如果您按下所选日期(即今天)的按钮,日期选择器不会触发日期属性更改。这是有道理的,因为实际上属性并没有改变。

I want it to be able to respond to selecting today's date, as the calendar leads to a diary.

要修改上述行为,我们可以使用 setAlwaysFireDayProperty(boolean alwaysFire)强制日期选择器始终触发属性更改事件的方法:

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

注意:this answer 中也对此进行了解释.

关于java - JCalendar 和 PropertyChangeListener : event is not fired for current day,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26226986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com