JFormattedTextField

CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012 - 23 août 2010 à 10:05
CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012 - 23 août 2010 à 12:07
Bonjour,

j'ai créé une Jframe contenant des JFormattedTextField qui obligent l'entrée de nombre que j'enregistre dans des variables double avec un cast et un gettext. Mon problème st que si je rentre un nombre plus grand que 999, il me met les 3 derniers chiffres derrière un point et les enregistre tel quel. Par exemple si je rentre 10000 il me marque 10.000 et m'enregistre 10.0 dans la variable double.
Pouvez- vous m'aider?

Mon code: JFormattedTextField diametre = new JFormattedTextField(NumberFormat.getNumberInstance());


CDB2006

9 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 août 2010 à 10:27
Salut,

Utilise le getValue plutôt que le getText
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012
23 août 2010 à 11:02
Au moment du cast du getvalue vers un double il me marque ca...


Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Double
at fenetrePalier.Calcul(fenetrePalier.java:377)
at fenetrePalier$BoutonCalcul.actionPerformed(fenetrePalier.java:399)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 août 2010 à 11:06
Salut,

Comme le message te l'indique, il te renvoie un Long et non un Double.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012
23 août 2010 à 11:23
Mais comment faire avec les nombres à virgule :s ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 août 2010 à 11:24
Salut,

Utilise le getCurrencyInstance et non le getNumberInstance.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012
23 août 2010 à 11:41
Merci beaucoup, vous m'avez été de grande aide !
0
CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012
23 août 2010 à 11:50
Petit soucis avec le getCurrencyInstance, dès que je rentre quelques chose dans mon JFormattedTextField (exemple : 0,1 ou 0.1), il me l'efface dès que je retire le curseur.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 août 2010 à 12:03
Salut,

C'est que ton format n'est pas accepté par le filtre. Sûrement un problème de locale, ou un truc du genre.

Je n'utilise plus les JFormattedTextField depuis belle lurette : je trouve vraiment pas pratique le fait de pouvoir saisir n'importe quoi dans le champ texte et que ce soit à la perte de focus que le composant efface la saisie si ça ne lui convient pas.
Je peux te suggérer d'aller voir ma source de masque de saisie qui te permet d'appliquer un filtre dynamique à un simple JTextField : il te limite la saisie au format voulue lors de la frappe : pour un champ à virgule, il t'empêchera de saisir une lettre par exemple, ou 2 virgules.

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
CdB2006 Messages postés 41 Date d'inscription jeudi 20 août 2009 Statut Membre Dernière intervention 25 janvier 2012
23 août 2010 à 12:07
Merci bcp :)
0
Rejoignez-nous