【问题标题】:JCalendar problem (the month February)JCalendar 问题(二月)
【发布时间】:2011-10-12 17:40:57
【问题描述】:

我有一个图形组件JCalendar 用于选择日期。当我的本地日期是 6 月 30 日时,问题(或错误)仍然存在;例如,当我通过 2 月份时,我用箭头通过月份,日期会自动插入(2 月 28 日),因为除非我选择,否则“propertyChange”事件将启动。

你怎么看?

【问题讨论】:

  • 很遗憾,您的问题描述得不够清楚。您能否从您的描述中删除 UI 问题(因为不相关)并解释您执行了对日历 API 的哪个调用以及为什么您认为它不能正常工作。
  • 没什么,也许是时候检查一下 java.util.Calendar 或 PropertyChangeListener 是如何工作的了,周围有很多 JCalendars 或 JDatePicker 选择器,检查一下 Focus 是如何工作的
  • “自动插入日期(2 月 28 日)”是什么意思?日期在哪里插入?
  • 当我使用箭头月份切换时,知道我的默认日期是:6 月 30 日,我不能超过 2 月 => 日历关闭并插入日期:3 月 28 日(知道我还没有选择这一天)。

标签: java swing jcalendar


【解决方案1】:

假设 JCalendarJSpinnerDateEditor,我在 6 月 30 日或 2 月 28 日附近看不到 JCalendarDemo 的不连续性。您可能会验证您正在观察正确的属性更改:

    JDateChooser spinner = new JDateChooser(new JSpinnerDateEditor());
    spinner.addPropertyChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent e) {
            System.out.println(e.getPropertyName()
                + ": " + e.getNewValue());
        }
    });
    this.add(spinner);

附录:我无法重现您描述的效果,因为这是一个已修复的错误here

附录:该错误也在JCalendar 1.4 版中得到修复。

【讨论】:

  • 当我使用箭头月份切换时,知道我的默认日期是:6 月 30 日,我不能超过 2 月 => 日历关闭并插入日期:3 月 28 日(知道我还没有选择这一天)
  • 啊哈!这是错误;上面的修复链接。
  • 我对此进行了测试,如果我设置 31/july/2011 并将 Cursor 设置为 Month 07,那么 JSpinner 可以正常工作(美国/欧盟区域设置)并跳转到当前月份的最后一天,我可以'没看到问题,是的,我知道这些月/日组合的一个错误,如果您使用月 JComboBox,然后将日期从 7 月(2011 年 7 月 31 日)跳到 2 月(2011 年 3 月 3 日)的错误日,我'我只看到焦点、字体、背景、SpecialDays(hollydays ...)的通知有一些问题,
  • @naj_ib 尝试与 SwingX 日历进行比较 stackoverflow.com/questions/6818528/…
猜你喜欢
  • 1970-01-01
  • 2011-02-16
  • 1970-01-01
  • 2016-10-03
  • 2022-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多