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

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

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

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

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

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

1 Ответ

0 голосов
/ 20 октября 2012

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

...