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 :

Erreur java lang.ArrayIndexOutOfBoundsException


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut Erreur java lang.ArrayIndexOutOfBoundsException
    vous allez me dire que cette erreur a déjà été résolu mais malheureusement je ne vois pas pourquoi cela ne marche pas . Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    private void lireDevise() {
            try {
                BufferedReader bd = new BufferedReader(new FileReader(nomFichier));
                String ligne = bd.readLine();
                String[] devise = new String[2];
                while (ligne != null) {
                    devise = ligne.split(":");
                    taux.put(devise[0], Double.parseDouble(devise[1]));
                    ligne = bd.readLine();
                }
            } catch (IOException ex) {
                System.err.println("erreur de lecture du fichier " + nomFichier);
            }
        }
    avec nomFichier="C:\\Users\\roro\\Documents\\NetBeansProjects\\ConvertisseurEuro\\devise.txt";
    Netbeans me dit :
    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
    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1
            at convertisseureuro.FenetrePrincipale.lireDevise(FenetrePrincipale.java:164)
            at convertisseureuro.FenetrePrincipale.jButton1ActionPerformed(FenetrePrincipale.java:180)
            at convertisseureuro.FenetrePrincipale.access$100(FenetrePrincipale.java:16)
            at convertisseureuro.FenetrePrincipale$2.actionPerformed(FenetrePrincipale.java:70)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
            at java.awt.Component.processMouseEvent(Component.java:6038)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
            at java.awt.Component.processEvent(Component.java:5803)
            at java.awt.Container.processEvent(Container.java:2058)
            at java.awt.Component.dispatchEventImpl(Component.java:4410)
            at java.awt.Container.dispatchEventImpl(Container.java:2116)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
            at java.awt.Container.dispatchEventImpl(Container.java:2102)
            at java.awt.Window.dispatchEventImpl(Window.java:2429)
            at java.awt.Component.dispatchEvent(Component.java:4240)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
    BUILD SUCCESSFUL (total time: 13 seconds)

  2. #2
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Cette initialisation est inutile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] devise = new String[2];
    Tu devrais juste déclarer la variable :

    En fait, l'initialisation est faite dans la boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    devise = ligne.split(":");
    et dans cette initialisation, le split a certainement construit un tableau avec une seule String.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut Re
    Il me dit qu'il y a cette erreur à ce niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    taux.put(devise[0], Double.parseDouble(devise[1]));
    sachant que taux est déclaré ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Map<String, Double> taux = new HashMap<String, Double>();

  4. #4
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    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 818
    Par défaut
    Citation Envoyé par lerorodu51 Voir le message
    java.lang.ArrayIndexOutOfBoundsException: 1
    Citation Envoyé par hasalex Voir le message
    et dans cette initialisation, le split a certainement construit un tableau avec une seule String.
    Citation Envoyé par lerorodu51 Voir le message
    sachant que taux est déclaré ainsi :
    Je pense qu'il va falloir que tu cibles un peu plus les messages d'erreur. Là, il te dit qu'il y a un index hors limite sur ton tableau, en particulier sur l'index 1, ce n'est donc pas ta variable taux qui pose problème... c'est l'autre... celle où tu cherches à accéder à l'index 1 du tableau

    Comme le dit hasalex, le split n'a rien splitté... il y a quoi dans ligne?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut
    Dans le fichier texte il y a 3 lignes :

    USD:4,456
    FRF:8,345
    GPB:9,97867

  6. #6
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    Est-ce que tu n'aurais pas une dernière ligne vide ?

    Dans tous les cas, je te conseille de faire un test sur la taille de ton tableau, ça t'évitera des surprises.

  7. #7
    Expert confirmé

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 818
    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 818
    Par défaut
    Citation Envoyé par plegat Voir le message
    il y a quoi dans ligne?
    Citation Envoyé par lerorodu51 Voir le message
    Dans le fichier texte il y a 3 lignes
    gnaaaa, ce n'est pas ce que j'ai demandé!!!

    Le problème est dans ton programme, regarde ce qu'il a récupéré comme valeur... pas ce que tu as mis dans le fichier...

    +1 pour la dernière remarque d'hasalex
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

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

Discussions similaires

  1. Erreur "java.lang.ArrayIndexOutOfBoundsException: 0"
    Par Mourad19 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 11/10/2014, 02h36
  2. Réponses: 1
    Dernier message: 10/08/2013, 18h45
  3. Réponses: 4
    Dernier message: 18/04/2013, 10h41
  4. Réponses: 1
    Dernier message: 07/09/2012, 17h14
  5. Erreur : java.lang.ArrayIndexOutOfBoundsException
    Par the watcher dans le forum Langage
    Réponses: 10
    Dernier message: 22/09/2010, 18h56

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