IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Listener sur JTextField pour calcul de remise


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut Listener sur JTextField pour calcul de remise
    Salut à tout le monde.

    Alors voilà, je cherche à calculer une remise en fonction du montant indiqué dans un JTextField. Au moment du scan du code barre, le prix unitaire s'affiche dans un premier JTextField, un deuxième affichant le montant total en fonction de la quantité produit. Un troisième JTextField optionnel, permet si l'on indique un montant de remise dedans, de l'appliquer sur le prix final.

    Cela marche pour des remises à un chiffre comme 5%, mais si j'indique 50% ça ne fonctionne plus, car ça calcule d'abord 5% puis 50% soit 11,4 au lieu de 12 pour un prix de départ de 24 €.

    C'est logique par rapport au listener utilisé, y'a t-il un listener plus adapté dans ce cas ? tout en m'évitant d'ajouter un bouton manuel de calcul

    Merci !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    JRemise.addKeyListener(new KeyListener()
    	{
    	public void keyTyped(KeyEvent e) {} 
    	public void keyPressed(KeyEvent e) {}
    	public void keyReleased(KeyEvent e) 
    		{ 
    		String text = JRemise.getText();
            float T1 = Float.parseFloat(text);
            //Si la remise vaut 0 c'est qu'on doit garder le prix total non remisé
    	    if (T1 == 0)
    	    	{
    	    	JTottc.setText(Float.toString((float)prixtotalttc));
    	    	}
    			else		
    			{
    				//Si le JT de remise n'est pas vide ou diiférent de 0 alors on calcule la remise
    				if(!text.isEmpty()&&T1 != 0) {
    					String tString = JTottc.getText();
    					float ttx = Float.parseFloat(tString); 
    					float ttxr = ttx*(1-T1/100);
    					//On applique le nouveau total remisé
    					JTottc.setText(Float.toString((float)ttxr));
    				}
    			}
    		}
    	});

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    n'utilise pas de keyListener. Modifie plutôt le modèle appliqué au JTextField. Voici un exemple dans la javadoc pour n'afficher que des majuscules :
    http://docs.oracle.com/javase/7/docs...TextField.html

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 24
    Par défaut
    En fait j'ai trouvé une solution, c'est de faire comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float ttxr = prixtotalttc*(1-T1/100);
    Au lieu d'utiliser de m’embêter à récupérer la valeur de la JT de total, je prends directement la variable qui l'alimente... ça fonctionne, mais je ne sais pas si c'est une solution "propre" dans la mesure ou laisser la case vide provoque un erreur et que des caractères autre que du nombre puissent être entrés (quoi que c'est correctible !)

Discussions similaires

  1. Combo et JtextField pour calcul de montant
    Par lrachell dans le forum Composants
    Réponses: 1
    Dernier message: 21/01/2014, 16h52
  2. comment on fait un listener sur JTextField
    Par poulette3000 dans le forum Composants
    Réponses: 6
    Dernier message: 16/02/2010, 15h46
  3. requête pour calculs sur lignes et classement
    Par GrandDeb dans le forum Requêtes
    Réponses: 9
    Dernier message: 11/05/2009, 11h01
  4. un même listener sur plusieurs JTextField
    Par AnjouWeb dans le forum Composants
    Réponses: 1
    Dernier message: 29/06/2007, 09h14
  5. Listener sur JtextField
    Par AnjouWeb dans le forum Composants
    Réponses: 2
    Dernier message: 25/06/2007, 01h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo