bonjour, j'aimerais savoir s'il existe des masque de Saisie date en formatant le jTexteField de swing? (jj-mm-aaaa)
Merci.
Version imprimable
bonjour, j'aimerais savoir s'il existe des masque de Saisie date en formatant le jTexteField de swing? (jj-mm-aaaa)
Merci.
Avec simpledateformat et en passant par des formatted fields... Je pense que ça doit jouer
ouCode:
1
2 //selon la langue en cours : new JFormattedTextField(new Date());
Code:
1
2 //format spécifique : new JFormattedTextField(new SimpleDateFormat("MM/dd/yy"));
Merci et si je veux juste faire un simple masque de saisie date avec Maskformatter??
Bah ce serait bête car tu ne profiterais pas de la validation intégrée et donc que ton utilisateur pourrait saisir des dates totalement fantaisistes
En fait, j'ai déjà une classe dans laquelle la vérification se fait, je veux juste cré le masque de saisie pour ne pas que l'utilisateur ne saisisse autre chose que "dd-MM-aaaa" vue que ma date dans ma classe est en SimpleDateFormat("dd-MM-yyy"); Vue que je fais seulement une interface qui cache tout mon code alors...
J'espère que vous m'avez compris, merci
Impossible de saisir dans le champs... je ne comprend pas pourquoiCode:
1
2
3
4
5
6
7
8
9 private JTextField getJTextFieldDate() throws ParseException { if (jTextFieldDate == null) { jTextFieldDate = new JFormattedTextField(new MaskFormatter("dd-MM-aaaa")); jTextFieldDate.setPreferredSize(new Dimension(100, 20)); jTextFieldDate.setHorizontalAlignment(JTextField.CENTER); } return jTextFieldDate; }
Parce que aux yeux d'un MaskFormatter, "dd-MM-aaaa" ça veut rien dire, la raison n'est pas plus compliquée que ça.
Merci, j'ai vu ce qui n'allais pas.
MerciCode:
1
2
3
4
5
6
7
8
9 private JTextField getJTextFieldAcquis() throws ParseException { if (jTextFieldAcquis == null) { jTextFieldAcquis = new JFormattedTextField(new MaskFormatter("##-##-####")); jTextFieldAcquis.setPreferredSize(new Dimension(100, 20)); jTextFieldAcquis.setHorizontalAlignment(JTextField.CENTER); jTextFieldAcquis.setText("12122009");//mon soucis est que je veux récupérer ma date ainsi ("12-12-2009"). } return jTextFieldAcquis;
Oui mais tu dois encore faire un travail derrière pour vérifier que la date est valide, sans oublier le problème des 29 févriers. 8-)
Oui, j'ai une déjà tout paramétré dans ma classe dans laquelle la variable date est déclaré, je fais juste un graphisme pour le caché en dessous mais dans ma zone de saisie date avoir("dd-MM-aaaa") alors qu'avec mon masque de saisie j'ai plutôt ça ("ddMMaaaa") quand je saisie ma date et il y aura forcément un parse exception vue que dans ma classe j'ai SimpleDateFormat("dd-MM-yyyy");
Si tu regardes du coté des API de validation et de binding de jGoodies, ça peut permettre de beaucoup éviter d'écrire ce genre de plomberie.
Qu'est ce t'appelle plomberie??
Tout le code qui se trouve entre le champ de saisie et la valeur dans un bean java.
C'est à dire la conversion de la saisie dans le bon type, la validation, le rejet de la valeur, la restauration d'une ancienne valeur.
Tu vois, un peu tout ce genre de code quelque peu rébarbatif qui pollue le code d'une JFrame habituellement.
Ok, que me conseilles-tu? je te rappelle que ces codes sont crées automatiquement par eclipse.
Je connais pas suffisamment bien ce que propose éclipse en la matière.
Cependant il existe des librairies de binding utilisable avec swing, jgoodies en propose une, sauf erreur swinglabs aussi.
L'idée est de dire : ok j'ai bean java avec une propriété getAge(int), setAge(int), je veux modifier cette propriété depuis une interface utilisateur (une liste, une combo, peu importe).
Au lieu de se taper à la main la copie de la valeur du bean dans l'UI ainsi que sa récupération et la conversion qui se met entre deux, on peut simplement *lier* la propriété age du bean avec le champ qui permet de l'éditer.
c'est cool ce que tu me dis là, mais tu me donnes pas le lien pour le téléchargement du JGoodies. merci
UN peu de recherche personnelle ne fait de mal à personne, en l'occurence c'est trouvable via google en 30 secondes...
Merci, c'est vraiment cool.8-)