代码之家  ›  专栏  ›  技术社区  ›  Ky -

使用旋转器制作12小时/24小时闹钟的建议?

  •  0
  • Ky -  · 技术社区  · 14 年前

    我有3个 JSpinner 一个小时,一个分钟,一个秒。分钟和秒的最大值为60,最小值为-1,小时的最小值为-1,最大值为24。如果第二个值达到60,它将返回到0,并逐个增加分钟数。小时和分钟一的向下函数和上下函数有类似的行为。这项技术在24小时的导航中运行完美。

    但是,我在12小时内遇到了问题。我有一个 JCheckBox ( amPmCheckBox )在左侧激活或停用12小时时间。现在,转换为/从12小时的时间也可以完美地工作,所以点击 复选框 不是问题。那里有 JToggleButton ( amPmToggleButton )在左边,你看。如果向上(取消选择),则显示AM;如果向下(选择),则显示PM。

    现在,问题不在于转换(记住,我说过可以),而在于滚动。当我把旋转器向上滚动几个小时时,它应该从,比方说,11点到12点。但是,我有它,所以 AmpmToggle按钮 每当小时微调器达到某个限制并向后翻转(这很容易检测到)时,就会切换其状态。我只是检查是否 getAlarmHrs() > MAX_ALARM_AMPM_HRS 否则如果 getAlarmHrs() < MIN_HRS 现在,这就是我的问题所在。每个AM/PM周期有12个小时,这是应该有的。但是,他们从上午1点到12点和下午1点到12点。任何知道上午/下午的人都知道这是错误的。

    我如何编程以知道何时在AM和PM之间切换?

    记住这个闹钟在24小时内工作得非常好。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Ky -    12 年前

    在这段时间之后,我使用了一种更加健壮的格式,并通过使用完全不同的设置解决了这个问题。基本的解决方案是分散一切;模块化程度越高,修复起来就越容易。如果有人访问这个问题并想得到更详细的答案,请简单地评论一下,我很乐意提供。