jSpinner temps sélecteur de modèle de l'édition
J'ai jSpinner l'aide pour le temps de la cueillette.
Problème 1: de l'Utilisateur peuvent être modifiées heure, minute et second séparateur ":" et peut écrire des chiffres supplémentaires comme "123"
Problème 2: modèle obtenez toujours le temps actuel. Je veux "00:00:00" Quand j'écris cela dans le code au lieu de "hh:mm:ss" utilisateur ne peut pas modifier les valeurs.
Mon Code est;
spinner1 = new javax.swing.JSpinner();
SpinnerDateModel spinnermodel = new SpinnerDateModel();
spinnermodel.setCalendarField(Calendar.MINUTE);
spinner1 .setModel(spinnermodel);
spinner1 .setEditor(new JSpinner.DateEditor(spinner1 , "hh:mm:ss"));
Toute aide appréciée. Merci.
Pouvez-vous expliquer pourquoi le premier problème est un problème? Le deuxième problème peut être résolu en utilisant quelque chose comme
Problem1 question parce que, spinner affiche 00:00:00 si l'utilisateur supprimer 1 ":" je ne peux pas obtenir au format réel de l'utilisateur. Ce doit être un moment de sélecteur. L'utilisateur interagit avec seulement les heures, les minutes et les secondes et ne pas supprimer n'importe quel caractère ou ajouter un nouveau personnage.
Jetez un oeil à thisqui est du champ de temps j'ai été tinckering avec pendant un certain temps
Merci à vous pour référence. J'ai d'enquêter, mais vraiment pénible 🙂 ton code est très professionnel.
Nous avons eu beaucoup de problèmes avec le spinner et la capacité de l'utilisateur exigences que c'était juste plus simple de créer un besoin de terrain/composant. Il a encore besoin de quelques ajustements, mais l'idée de base/l'intention est là
Calendar
et réglage de l'heure, des minutes et des secondes, des champs à 0 et le réglage de la filateurs de la valeur à la suite Date
retourné par Calendar#getTime
Problem1 question parce que, spinner affiche 00:00:00 si l'utilisateur supprimer 1 ":" je ne peux pas obtenir au format réel de l'utilisateur. Ce doit être un moment de sélecteur. L'utilisateur interagit avec seulement les heures, les minutes et les secondes et ne pas supprimer n'importe quel caractère ou ajouter un nouveau personnage.
Jetez un oeil à thisqui est du champ de temps j'ai été tinckering avec pendant un certain temps
Merci à vous pour référence. J'ai d'enquêter, mais vraiment pénible 🙂 ton code est très professionnel.
Nous avons eu beaucoup de problèmes avec le spinner et la capacité de l'utilisateur exigences que c'était juste plus simple de créer un besoin de terrain/composant. Il a encore besoin de quelques ajustements, mais l'idée de base/l'intention est là
OriginalL'auteur Black White | 2014-02-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser l'éditeur du formateur à le faire, getTextField() méthode:
Le champ de texte est en fait un JFormattedTextField avec un DateFormatter en tant que formateur. Jetez un oeil à Comment Utiliser les Champs de Texte Formaté pour une meilleure compréhension sur la façon de travailler avec ce composant.
Note le modèle utilisé lors de l'éditeur est créé. C'est "HH:mm:ss" à cause de votre 2ème exigence.
Vous devez fournir à votre spinner avec une première date à 12 HEURES (24 heures) qui sera traduit en "00:00:00":
Exemple
Voici un très simple exemple pour tester ce que j'ai dit. Espérons qu'il sera utile.
Modifier
Tout d'abord désolé, je n'ai pas remarque qu'avant. Cet effrayant comportement se produit parce que formateur est le mode de remplacement de la propriété est définie à
false
quelque part au cours deJSpinner.DateEditor
'initialisation (mais impossible de trouver où). Cette propriété esttrue
par défaut selon javadoc. Pour résoudre ce problème, vous ne devez ajouter cette ligne (j'ai aussi édité mon code ci-dessus):veuillez voir mon edit. Espérons que cela fonctionne cette fois (pour moi au moins). Je pense qu'il résout également ceci: ", Et de toute façon ne pas réagir minutes des changements d'heures ?"
Oui, c'est le travail. Encore quelques Minutes des changements après 59 à 0 heures d'une augmentation de 1 heure également de quelques secondes à quelques minutes. De toute façon pas un gros problème. Merci pour la solution.
vous êtes les bienvenus. Content que ça vous a aidé!
OriginalL'auteur dic19
La JSpinner classe n'a pas été spécifiquement conçu pour être utilisé comme un sélecteur de temps, de sorte qu'il peut être difficile de personnaliser son comportement. Le TimePicker classe dans le LGoodDatePicker bibliothèque pourrait être une meilleure alternative pour ce type d'utilisation.
Vous avez mentionné vouloir afficher les minutes et les secondes dans le format de votre. Le TimePicker format peuvent être personnalisées à l'aide de java.temps DateTimeFormatter classe.
Page d'Accueil du projet: https://github.com/LGoodDatePicker/LGoodDatePicker .
Captures d'écran des composants et de l'application démo sont collé ci-dessous.
OriginalL'auteur BlakeTNC