【发布时间】:2013-11-22 14:52:59
【问题描述】:
我有 3 个JSpinners,一个小时,一个分钟,一个秒。分钟和秒的最大值为 60,最小值为 -1,小时的最小值为 -1,最大值为 24。如果第二个达到 60,它会翻转回 0 并一一增加分钟.向下功能和小时和分钟一的向上和向下功能具有类似的行为。在 24 小时制中导航时,这种技术可以完美运行。
但是,我在 12 小时内遇到了问题。我在左侧有一个JCheckBox (amPmCheckBox),用于激活或停用 12 小时时间。现在,与 12 小时时间的转换也完美无缺,因此单击此 JCheckBox 不是问题。你看,左边有一个JToggleButton (amPmToggleButton)。如果它是 up(取消选择),则显示 AM,如果它是 down(选择),则显示 PM。
现在,问题不在于转换(请记住,我说过有效),而在于滚动。当我向上滚动微调器时,它应该从晚上 11 点到凌晨 12 点。但是,我有它,以便 amPmToggleButton 每次小时微调器达到其限制之一并返回时切换其状态(这很容易检测到。我只检查 getAlarmHrs() > MAX_ALARM_AMPM_HRS 否则如果 getAlarmHrs() < MIN_HRS。)现在,这就是我的问题。每个上午/下午周期有 12 小时,应该有。但是,他们从上午 1 点到 12 点和下午 1 点到 12 点开始。任何了解 AM/PM 的人都知道这是错误的。
如何编程以知道何时在 AM 和 PM 之间切换?
请记住,这个闹钟在 24 小时制中绝对完美。
【问题讨论】:
-
如果你把它分成几段给我们读起来会更容易。
-
我不想知道如何制作 12 小时闹钟。我已经这样做了。阅读问题,而不是标题。
标签: java clock alarm jspinner togglebutton