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 :

Problème avec Jspinner en utilisant ChangeListner


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut Problème avec Jspinner en utilisant ChangeListner
    Bonsoir


    http://cima-motors.com/Screenshot.png


    En image ce que je veux obtenir en changeant la quantite avec Jspinner le clacule s'effectue en live pour afficher le resultat de PRIX * QUANTITE dans le Jtext j'ai un gros probleme avec les listner j'arrive pas a bien saisir leurs fonctionnement !!!

    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
       
                   final JSpinner quantite = new JSpinner();
    		    
    
    		   quantite.addChangeListener(new ChangeListener() {
    		    	public void stateChanged(ChangeEvent arg0) {
    
    		    		  //j'ai tt effecer ici car c'est devenu n'importe quoi
                                     
    		    		System.out.println("Quantite: " + quantite.getValue());
    		    	 
    		    	}
    		    });
    		    
    		    quantite.setBounds(95, 66, 87, 28);
    		    panelCommander.add(quantite);
    		    txtPrixglobale = new JTextField();
    		    //txtPrixglobale.setText(la ou je veux recuperer le resultat);  <=== 
    		    txtPrixglobale.setBounds(31, 106, 151, 28);
    		    panelCommander.add(txtPrixglobale);
    		    txtPrixglobale.setEditable(false);
    		    txtPrixglobale.setColumns(10);

  2. #2
    Membre expérimenté Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Par défaut
    Citation Envoyé par bankai_khn Voir le message
    j'ai un gros probleme avec les listner j'arrive pas a bien saisir leurs fonctionnement
    A juger d'après ton code, tu as parfaitement compris le fonctionnement du "ChangeListener", en tout cas il fonctionne très bien chez moi. Est-ce que tu peux préciser ton problème?

    Cordialement,
    André

  3. #3
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    Citation Envoyé par uhrand Voir le message
    A juger d'après ton code, tu as parfaitement compris le fonctionnement du "ChangeListener", en tout cas il fonctionne très bien chez moi. Est-ce que tu peux préciser ton problème?

    Cordialement,
    André
    bonjour

    Oui j'ai compris comment ca marche mais pas a un niveau superieur

    ca marche aussi chez moi

    si tu regarde le screenshot je voudrai faire un calcule; Jspinner me donne la quantite .. j'ai le prix qui est deja recuperer de la BDD

    - je voudrai savoir es que le calcule (Quantite*Prix) je le fait a l'interieur du listner ou a l'exterieur ???
    Sachant que je l'es deja fait a l'interieur et ca m'affiche le bon resultat sur la Console .... mais pour le sortir et l'afficher sur mon interface graphique dans un Jtext je ne sais pas comment !!!

    Comment faire pour sortir sa valeur en dehors du listner surtout !!!! et que ca se rafraichie a chaque fois ???

    J'espere que j'ai ete clair

    ps : ce matin j'ai moins la cervelle en compote je vais retenter avec quelque noeuronnes de plus que la veuille ca marchera peu etre

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    il faut que tu crées ton JTextField avant et que tu l'utilises directement dans stateChanged, personnellement en général j'en fais des membres de ma classe plutôt que des variables statiques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected JTextField txtPrixglobale ;
    ...
     
    JSpinner quantite = new JSpinner();
    txtPrixglobale = new JTextField();
     
    quantite.addChangeListener(new ChangeListener() {
    	public void stateChanged(ChangeEvent e) {
    		txtPrixglobale.setText(((JSpinner)e.getSource()).getValue() * PRIX));
    	});
    mais je ne sais pas où tu stockes PRIX. En fait c'est dans ta méthode stateChanged que vas devoir appeler également la méthode qui rafraichit ton panier. D'autre part, ça ne me semble pas très propre d'utiliser directement les valeurs des composants graphiques pour gérer ton panier, en général on monte plutôt le système dans l'autre sens, mais bon...

  5. #5
    Membre averti
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2011
    Messages : 11
    Par défaut
    cc

    merci pour les reponse

    bon ca marche maintenant , je ne suis pas fiere de mon code je sais que c'est degoulasse ce que j'ai fait mais au moins ca marche

    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
     
     
                        textFieldPrixUnite = new JTextField();
    		    textFieldPrixUnite.setText(details.getString(5));
     
    		    textFieldPrixUnite.setEditable(false);
    		    textFieldPrixUnite.setColumns(10);
    		    textFieldPrixUnite.setBounds(31, 26, 151, 28);
    		    panelCommander.add(textFieldPrixUnite);
     
    		   quantite.addChangeListener(new ChangeListener() {
    		    	public void stateChanged(ChangeEvent e) {
     
    		    		//System.out.println("Quantite: " + quantite.getValue());
    		    	    int nbpiece = (Integer) quantite.getValue();
    		    	    Float prixunitaire = new Float(textFieldPrixUnite.getText());
    		    	    Float prixGlobale = prixunitaire * nbpiece;
    		    	    txtPrixglobale.setText(Float.toString(prixGlobale));
     
    		    	}
    		    });
    @Djakisback J'ai declarer mon JTextField txtPrixglobale private en haut je crois que tu as raison pour mettre protected

    Le prix je le recupere depuis une BDD et je remplie mon JtextUnitaire avec c'est juste pour la visibilite certe j'aurai pu utiliser un label mais bon. j'ai fait de tels sorte a mettre textFieldUnitaire et TextFieldGlobal en lecture seule donc l'utilisateur ne peux pas modifier

    Explique moi stp ce que tu veux dire par en général on monte plutôt le système dans l'autre sens, mais bon...

    Je suis une super 0 en Java mon truc c'est le web mais j'aimerai beaucoup m y mettre donc je galere un peux ... un peux perdu dans tout ses composants et notions

    a vrai dire ce projet c'est un site web E-commerce c'est pas normal de le faire en swing java vous vous dite surment ca !!! vue que le plus adequat est de le developper en JEE moi meme je suis entrain de le developper en trouvant ca bisar lol c'est juste que j'ai fait une etude UML e-commerce et cette etudes on dois la developper en Java ensuite en JEE ( c'ete imposer par notre formateur ) ... J'ai pas calculer cela quand j'ai choisie le theme de mon etudes

    Merci pour vous indications ça m'as bien aidée

    @Djakisback J'attend ton explication ^^ stp

  6. #6
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Ce que je voulais dire c'est qu'en général on spécifie un modèle fonctionnel répondant aux besoins directs et un deuxième modèle (surcouche) pour l'interface graphique. A priori, dans ton étude UML tu devrais avoir des composants tous pleinement fonctionnels gérant des paniers, des stocks, des produits, des commandes, etc. indépendamment de l'interface graphique.

    Dans ton code, tu passes par la valeur du texte d'un composant graphique pour ensuite effectuer un calcul lié à une commande, ce qui n'est pas très bon en général. D'autre part, ce sera plus compliqué de migrer ensuite vers JSP, RMI ou autre si tu n'as pas bien dissocié les deux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/11/2007, 17h53
  2. problème avec un formulaire utilisant mailto
    Par MortDansLAme dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/05/2007, 15h22
  3. [HSQLDB] problème avec un SELECT utilisant LIMIT
    Par don_quichotte dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 12/04/2007, 23h08
  4. Problème avec une Fonction utilisant WMI
    Par Eric_78180 dans le forum VBScript
    Réponses: 3
    Dernier message: 29/12/2006, 14h00
  5. problème avec une requete utilisant LIMIT
    Par kow_Ced dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/08/2006, 16h01

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