Предложения по созданию 12-часового/24-часового будильника с помощью Spinners?

У меня есть 3 JSpinners, один для часов, один для минут, один для секунд. Минуты и секунды имеют максимальное значение 60 и минимальное значение -1, а часы имеют минимальное значение -1 и максимальное значение 24. Если второй достигает 60, он возвращается к 0 и увеличивает минуты один за другим. . Существует аналогичное поведение для функции вниз и функции вверх и вниз для часов и минут. Этот метод работает безупречно при навигации по 24-часовому времени.

ОДНАКО я столкнулся с проблемами за 12 часов. У меня есть JCheckBox (amPmCheckBox) слева, который активирует или деактивирует 12-часовое время. Теперь преобразование в/из 12-часового времени также работает без нареканий, так что нажатие этой JCheckBox не проблема. Видите, слева есть JToggleButton (amPmToggleButton). Отображает AM, если оно вверху (не выбрано), и PM, если оно внизу (выбрано).

Теперь проблема заключается не в конвертации (помните, я сказал, что это сработало), а в прокрутке. Когда я прокручиваю счетчик вверх по часам, он ДОЛЖЕН идти, скажем, с 23:00 до 00:00. ОДНАКО, у меня это так, что amPmToggleButton переключает свое состояние каждый раз, когда счетчик часов достигает одного из своих пределов и переворачивается назад (что легко обнаружить. Я просто проверяю, если getAlarmHrs() > MAX_ALARM_AMPM_HRS иначе, если getAlarmHrs() < MIN_HRS.) Теперь, в этом и заключается моя проблема. В цикле AM/PM СУЩЕСТВУЕТ 12 часов, как и должно быть. ОДНАКО, они идут с 1:00 до 12:00 и с 13:00 до 12:00. Любой, кто знает AM / PM, знает, что это неправильно.

Как мне запрограммировать это, чтобы знать, когда переключаться между AM и PM?

Помните, что этот будильник работает абсолютно идеально в 24-часовом режиме.


person Ky Leggiero    schedule 16.11.2010    source источник
comment
Это было бы намного легче читать, если бы вы разбили его на абзацы для нас.   -  person jjnguy    schedule 17.11.2010
comment
ggjava.wordpress.com/2011/01/30/24-hour -будильник 24-часовой будильник   -  person    schedule 05.02.2011
comment
Я не хочу знать, как сделать 12-часовой будильник. Я уже сделал это. Читайте вопрос, а не заголовок.   -  person Ky Leggiero    schedule 05.02.2011


Ответы (1)


По прошествии всего этого времени я выбрал гораздо более надежный формат и исправил эту проблему, используя совершенно другую настройку. Основное решение состояло в том, чтобы все децентрализовать; чем он более модульный, тем легче его исправить. Если кто-то посещает этот вопрос и хочет получить более подробный ответ, просто прокомментируйте это, и я буду рад предоставить его.

person Ky Leggiero    schedule 20.10.2012