2010-11-16 40 views
0

J'ai 3 JSpinner s, une pour les heures, une pour les minutes, une pour les secondes. Les minutes et les secondes ont un maximum de 60 et un minimum de -1 et les heures ont un minimum de -1 et un maximum de 24. Si la seconde touche 60, elle revient à 0 et augmente les minutes une par une . Il y a un comportement similaire pour la fonction bas et la fonction haut et bas des heures et des minutes. Cette technique fonctionne parfaitement lorsque vous naviguez sur une période de 24 heures. Cependant, je rencontre des problèmes en 12 heures. J'ai un JCheckBox (amPmCheckBox) à gauche qui active ou désactive l'heure de 12 heures. Maintenant, la conversion de/à 12 heures fonctionne parfaitement, donc le clic de ce JCheckBox n'est pas le problème. Il y a un JToggleButton (amPmToggleButton) à gauche, vous voyez. Ceci affiche AM s'il est en haut (désélectionné) et PM s'il est en bas (sélectionné).Suggestions pour faire un réveil de 12 heures/24 heures en utilisant Spinners?

Maintenant, le problème ne réside pas dans la conversion (rappelez-vous, je l'ai dit qui a fonctionné), mais dans le défilement. Quand je fais défiler le filateur à travers les heures, il DEVRAIT aller de, disons, de 23 heures à 12 heures. Cependant, je l'ai pour que le amPmToggleButton change d'état à chaque fois que le compteur de l'heure atteint l'une de ses limites et revient en arrière (ce qui est facile à détecter, je vérifie simplement getAlarmHrs() > MAX_ALARM_AMPM_HRS sinon getAlarmHrs() < MIN_HRS.) Maintenant, c'est là que réside mon problème. Il y a 12 heures par cycle AM ​​/ PM, comme il se doit. CEPENDANT, ils vont de 1h à 12h et de 13h à 12h. Toute personne qui connaît AM/PM sait que c'est faux. Comment puis-je programmer ceci pour savoir quand basculer entre AM et PM? N'oubliez pas que ce réveil fonctionne parfaitement parfaitement en 24 heures.

+0

Ce serait beaucoup plus facile à lire si vous l'avez divisé en paragraphes pour nous. – jjnguy

+0

Je l'ai fait. – Supuhstar

+0

http://ggjava.wordpress.com/2011/01/30/24-heure-alarm/ 24 heures d'alarme –

Répondre

0

Après tout ce temps, je suis allé avec un format beaucoup plus robuste et ai résolu ce problème en utilisant une configuration totalement différente. La solution de base consistait à tout décentraliser; plus il est modulaire, plus il est facile de le réparer. Si quelqu'un répond à cette question et veut une réponse plus détaillée, il suffit de commenter et je serai heureux de le fournir.