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

NetBeans Java Discussion :

Pb Netbeans : comparaison de valeur :


Sujet :

NetBeans Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut Pb Netbeans : comparaison de valeur :
    Salut à tous!
    J'ai commencé le java il n'y a pas très longtemps avec Netbeans, je dois rendre un projet assez rapidement et j'ai des difficultés!!mon projet est de réaliser une application java permettant de calculer les dépenses d'un étudiant!
    J'ai 2 parties : une dépense et une recette. Dans chacune de ses parties qui séparé en 3 (3 dépenses différentes et 3 recettes différentes, j'ai 1 jTextFields et 1 comboBox, je rentre une valeur dans la textField et ensuite, je sélectionne si je veux que la dépense soit par semaine, par mois ou par année.
    Lorsque je quitte mon champs, il doit s'enregistrer dans une pile d'objets dans lequel je fais ma sauvegarde!
    Cette sauvegarde, je ne dois la faire que si mon champs que je viens de rentrer est différent de ce champs contenu dans la variable présente au somment de la pile!!
    C'est là que ça bloque!!
    Voici ma fonction permettant de comparer mes 2 valeurs!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public int Comparaison()
        {
            String Test1=jTextField1.getText(); //récupe de la val dans TextBox
            if(jTextField1.getText()==undoStack.lastElement().oldtext1)
                return 0; //si c'est égal renvoie 0
            else
                return 1; //sinon 1
         }
    Mon problème est qu'il me renvoie toujorus la même chose!le 0!!
    Merci à tous ceux qui voudront bien m'aider!je les remercier déjà d'avance!

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut,

    Essaye déjà avec ça pour voir: on n'utilise pas "==" pour comparer des chaines!
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut Re!
    En principe, je sais que on ne met pas == pour comparer des chaines!
    c'est seulement que si je ne les mets pas, j'ai une erreur!!
    il me met : unexpected type!!

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par scoubida42 Voir le message
    En principe, je sais que on ne met pas == pour comparer des chaines!
    c'est seulement que si je ne les mets pas, j'ai une erreur!!
    il me met : unexpected type!!
    Et?
    Tu compares quoi exactement comme objets?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut re
    en fait, je compare 2 variables, l'une étant la valeur contenue dans l'objet jTextField que je viens d'écrire et l'autre étant aussi une valeur jTextField mais contenue dans une pile d'objet.
    pour chaque niveau de ma pile j'ai tout un ensemble de variables (8int et 6string), il faut que j'en récupère juste une valeur pour pouvoir faire la comparaison!

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par scoubida42 Voir le message
    en fait, je compare 2 variables
    ça, on s'en doute un peu...

    A gauche on a une String, qu'est-ce que tu as à droite? Quel type d'objet pour undoStack.lastElement().oldtext1? Qu'y mets-tu exactement? (pas une String, vu que ça ne passe pas avec le equals() d'après ce que tu as dit précédemment...)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut re
    En fait si!c'est bien une variable de type String!!

  8. #8
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par scoubida42 Voir le message
    En fait si!c'est bien une variable de type String!!
    Si c'était une variable de type String, tu n'aurais pas de message d'erreur disant unexpected type.

    Peux-tu mettre le code complet avec le equals, ainsi que le message d'erreur complet?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut
    En fait, je viens juste de recopier le code que j'avais mis dans le 1er message!et de le retester en écrivant avec la fonction .equals! et mon souci c'est que je reste toujours avec ma variable égale à 0, la condition pour que ce soit 1 ne passe jamais et je comprend pas pourquoi!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public void Comparaison()
        {
            if(jTextField1.getText().equals(undoStack.lastElement().oldtext1))
                 JOptionPane.showMessageDialog(this, " TEST 1");
            else
                 JOptionPane.showMessageDialog(this, " TEST 2");//sinon 1
         }

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par scoubida42 Voir le message
    En fait, je viens juste de recopier le code que j'avais mis dans le 1er message!et de le retester en écrivant avec la fonction .equals! et mon souci c'est que je reste toujours avec ma variable égale à 0
    Tiens? ça fonctionne maintenant?


    Citation Envoyé par scoubida42 Voir le message
    la condition pour que ce soit 1 ne passe jamais et je comprend pas pourquoi!
    Je persiste, mais si tu veux que nous on comprenne, il faudrait peut-être nous montrer un peu plus de code... là, c'est égal, tant mieux, tant pis, mais si on ne sait pas ce que tu fais autour, on ne peut rien dire...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 37
    Points : 15
    Points
    15
    Par défaut re
    En fait, maintenant, mon test marche puisque je l ai entierement refait.
    Maintenant, j'aimerai optimiser mon code, je pense qu'il y a pas mal de chose a faire :
    voici l'une de mes classes, aui doit etre horrible pour des gens qui s'y connaissent bien en java :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    //*******************************************
    //Fichier GUIState.java
    //*******************************************
    package mybudgetingtool;
     
    public class GUIState {
        //******************************************************
        // Déclarations des variables pour la sauvegarde des TextsFields :
        String oldtext1, oldtext2, oldtext3;
        String oldtext4, oldtext5, oldtext6;
        String oldtext7, oldtext8, oldtext9;
        //******************************************************
        // Déclarations des variables pour la sauvegarde des ComboBox :
        int oldBox1, oldBox2, oldBox3, oldBox4, oldBox5, oldBox6;
        //********
        // Constructeur :
        public GUIState(budgetingtool g)
        {
            oldtext1 = g.jTextField1.getText();
            oldtext2 = g.jTextField2.getText();
            oldtext3 = g.jTextField3.getText();
            oldtext4 = g.jTextField4.getText();
            oldtext5 = g.jTextField5.getText();
            oldtext6 = g.jTextField6.getText();
            oldtext7 = g.jTextField7.getText();
            oldtext8 = g.jTextField8.getText();
            oldtext9 = g.jTextField9.getText();
            oldBox1 = g.jComboBox1.getSelectedIndex();
            oldBox2 = g.jComboBox2.getSelectedIndex();
            oldBox3 = g.jComboBox3.getSelectedIndex();
            oldBox4 = g.jComboBox4.getSelectedIndex();
            oldBox5 = g.jComboBox5.getSelectedIndex();
            oldBox6 = g.jComboBox6.getSelectedIndex();
          }
          //Méthode :
          public void setGUI(budgetingtool g) {
             g.jTextField1.setText(oldtext1);
             g.jTextField2.setText(oldtext2);
             g.jTextField3.setText (oldtext3);
             g.jTextField4.setText(oldtext4);
             g.jTextField5.setText(oldtext5);
             g.jTextField6.setText(oldtext6);
             g.jTextField7.setText(oldtext7);
             g.jTextField8.setText( oldtext8);
             g.jTextField9.setText(oldtext9);
             g.jComboBox1.setSelectedIndex(oldBox1);
             g.jComboBox2.setSelectedIndex(oldBox2);
             g.jComboBox3.setSelectedIndex(oldBox3);
             g.jComboBox4.setSelectedIndex(oldBox4);
             g.jComboBox5.setSelectedIndex(oldBox5);
             g.jComboBox6.setSelectedIndex(oldBox6);
        }
          public void setinitializeGUI(budgetingtool g)
          {
             g.jTextField1.setText("0.00");
             g.jTextField2.setText("0.00");
             g.jTextField3.setText("0.00");
             g.jTextField4.setText("0.00");
             g.jTextField5.setText("0.00");
             g.jTextField6.setText("0.00");
             g.jTextField7.setText("0.00");
             g.jTextField8.setText("0.00");
             g.jTextField9.setText("0.00");
             g.jComboBox1.setSelectedIndex(0);
             g.jComboBox2.setSelectedIndex(0);
             g.jComboBox3.setSelectedIndex(0);
             g.jComboBox4.setSelectedIndex(0);
             g.jComboBox5.setSelectedIndex(0);
             g.jComboBox6.setSelectedIndex(0);
          }
    }
    //*******************************************
    // Fichier budgetingtool.java
    //*******************************************
    //utilisation d'un TextField
     
        private void jTextField1FocusLost(java.awt.event.FocusEvent evt) {                                      
               Calculate();
            if(jTextField1.getText().equals(undoStack.lastElement().oldtext1))
            {
                JOptionPane.showMessageDialog(this," pas d'élément à ajouter pour textField1");
             }
            else
            {
                 addElementStack();
                 JOptionPane.showMessageDialog(this,undoStack.lastElement().oldtext1 +" élément 1 ajouté");
            }
    }                  
     
    //********************************************************
         Stack<GUIState> undoStack=new Stack<GUIState>();
         Stack<GUIState> redoStack=new Stack<GUIState>();
            undoStack.push(new GUIState(this));
            redoStack.push(new GUIState(this));
     
        private void addElementStack()
        {
            //Get GUI State :
            oldState = new GUIState(this);
            //put on undoStack
            undoStack.push(oldState);
        }
        private void restoreundoState()
        {
              undoStack.pop();
              oldState=undoStack.peek();
              oldState.setGUI(this);
              oldState=new GUIState(this);
              redoStack.push(oldState);
        }
     
        private void restoreredoState()
        {
              redoStack.pop();
              oldState=redoStack.peek();
              oldState.setGUI(this);
              addElementStack();
        }
    J'espere que c'est plus claire maintenant que je viens de mettre une partie de mon code, sachant que ca ne marche pas, si mon textField change, il me remet la meme valeur dans la pile, ce que je ne veux pas...
    merci de votre reponse par avance.

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/12/2006, 20h52
  2. GTK+ comparaison entier valeur du pointeur
    Par Emyleet dans le forum GTK+ avec C & C++
    Réponses: 10
    Dernier message: 21/07/2006, 15h28
  3. comparaison de valeur sur un résultat de requete
    Par griese dans le forum Langage
    Réponses: 5
    Dernier message: 28/06/2006, 15h23
  4. comparaison de valeurs
    Par Flobynaldo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/05/2006, 16h56
  5. Comparaison de valeurs stockees dans un meme champ
    Par Tartenpion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/02/2006, 21h33

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