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 :

Comment prendre en compte la valeur d'un JSpinner?


Sujet :

AWT/Swing Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 163
    Points
    163
    Par défaut Comment prendre en compte la valeur d'un JSpinner?
    Je n'arrive pas à utiliser la valeur numérique utilisée par des JPinner utilisant un SpinnerNumberModel.

    Voici des extraits de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     //creation du SpinnerModel
    SpinnerNumberModel PourRot = new SpinnerNumberModel (0, -360, 360, 1 );
    (...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     //Creation du JSpinner inséré dans une fenêtre
    rotation = new JSpinner (PourRot);
        bHor.add(rotation);  //bHor est le gestionnaire de composants
        rotation.addChangeListener(this);
        RotVal = PourRot.getNumber().doubleValue(); //cette méthode, testée //avec un System.out.println marche ici
    (...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     public void stateChanged(ChangeEvent e) {
            if (e.getSource() == rotation){
            try {rotation.commitEdit();    //capture des changements d'etat 
                }                                // du JSpinner et traitement
            catch (ParseException pe){     // normalement ici la valeur de         
            }                                    //PourRot est actualisée
            }
    (...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public void actionPerformed (ActionEvent ev) {  
            if (ev.getSource() == calculer) {
            RotVal = PourRot.getNumber().doubleValue();
            System.out.println(RotVal);
    La ligne en rouge, mise dans l'accolage StateChanged ou ActionPerformed déclanche toute une liste d'exeptions dans la console alors qu'elle marche auparavant. Je n'arrive par à utiliser la valeur éditée dans le JSpinner pour les intégrer dans des calculs.
    Que faire? Cela fait 10 jours que je cherche!!!

  2. #2
    Membre du Club Avatar de Liquidsoul
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 65
    Points
    65
    Par défaut
    Salut,

    Déjà l'utilisation des balises CODE aiderait à mieux comprendre.

    Ensuite, pour récupérer la valeur du JSpinner je te conseille plutot d'utiliser la méthode getValue() du JSpinner.

    J'espère que ca t'aidera

    Sinon, jete un oeil ici si ce n'est pas déjà fait

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 163
    Points
    163
    Par défaut
    Merci pour cette première réponse.

    La méthode getValue() marche effectivement très bien et renvoie bien la valeur en impression, mais elle renvoie un objet (class Object). Je n'ai pas trouvé comment convertir cet objet en double ou en int.

    J'avais lu la doc sur le Spinner, mais je n'y ai rien vu sur les SpinnerNumberModel qui me montre un exemple. Je me trompe peut-être?

  4. #4
    Membre du Club Avatar de Liquidsoul
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par HNoury
    Merci pour cette première réponse.

    La méthode getValue() marche effectivement très bien et renvoie bien la valeur en impression, mais elle renvoie un objet (class Object). Je n'ai pas trouvé comment convertir cet objet en double ou en int.

    J'avais lu la doc sur le Spinner, mais je n'y ai rien vu sur les SpinnerNumberModel qui me montre un exemple. Je me trompe peut-être?
    Tu récupère un Object mais tu peux faire un cast sur celui-ci pour le convertir dans son réel format (qui dépend de ce que représente ton Spinner).
    Exemple pour un spinner représentant des entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int value = ((Integer)spinner.getValue()).toInt()


    PS: pour info la méthode "getClass" d'un Object te permet de savoir quel est le vrai type de l'objet en question

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 171
    Points : 163
    Points
    163
    Par défaut
    Merci, c'est exactement cela. Ca a marché très bien (avec intValue() ou doubleValue()).

    Merci beaucoup, je vais enfin pouvoir aller plus loin dans ce projet.

    Bien à toi, Liquidsoul!

  6. #6
    Membre du Club Avatar de Liquidsoul
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 51
    Points : 65
    Points
    65
    Par défaut
    Ce fut un plaisir

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/11/2011, 14h18
  2. Réponses: 1
    Dernier message: 27/05/2008, 20h48
  3. [RegEx] Comment prendre en compte les caractères accentués ?
    Par jfrag dans le forum Langage
    Réponses: 8
    Dernier message: 12/02/2008, 17h34
  4. Réponses: 2
    Dernier message: 05/01/2007, 04h07
  5. [plugin][tomcat] Comment prendre en compte les jar ?
    Par djodjo dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 08/04/2004, 19h47

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