0

私は 3 つJSpinnerの s を持っています。1 つは時間、1 つは分、もう 1 つは秒です。分と秒の最大値は 60、最小値は -1、時間の最小値は -1、最大値は 24 です。秒が 60 になると、0 に戻り、分が 1 つずつ増加します。 . ダウン機能と時分針のアップダウン機能についても同様の動作があります。この手法は、24 時間制をナビゲートする際に問題なく機能します。

ただし、12 時間以内に問題が発生しました。左にJCheckBox( amPmCheckBox) があり、12 時間制を有効または無効にします。現在、12 時間制への変換も問題なく機能するため、これをクリックしてもJCheckBox問題ありません。JToggleButton左に( )がありamPmToggleButtonますね。これにより、稼働中 (選択解除) の場合は AM が表示され、停止中 (選択済み) の場合は PM が表示されます。

さて、問題は変換ではなく (うまくいったと言いました)、スクロールにあります。スピナーを上にスクロールすると、たとえば、午後 11 時から午前 12 時まで移動する必要があります。amPmToggleButtonただし、時間スピナーが制限の1つに達して反転するたびに状態が切り替わるようにしています(これは簡単に検出できます。getAlarmHrs() > MAX_ALARM_AMPM_HRS他にあるかどうかを確認するだけですgetAlarmHrs() < MIN_HRS。)今、そこに私の問題があります。AM/PM サイクルごとに 12 時間あるはずです。ただし、午前 1 時から午前 12 時までと午後 1 時から午後 12 時までです。AM/PM を知っている人なら誰でも、これが間違っていることを知っています。

AM と PM をいつ切り替えるかを知るためにこれをプログラムするにはどうすればよいですか?

この目覚まし時計は、24 時間制で完全に機能することを忘れないでください。

4

1 に答える 1

0

これまでずっと、私ははるかに堅牢なフォーマットを使用し、まったく異なるセットアップを使用してこの問題を修正しました. 基本的な解決策は、すべてを分散化することでした。モジュール化すればするほど、修正が容易になります。誰かがこの質問にアクセスし、より詳細な回答が必要な場合は、コメントしてください。喜んで提供します。

于 2012-10-20T16:39:07.420 に答える