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

avec Java Discussion :

erreur avec ArrayIndexOutOfBoundsException


Sujet :

avec Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Par défaut erreur avec ArrayIndexOutOfBoundsException
    Bonjour,

    Mon programme me permet de lire la couleur rouge/vert/bleu d'une surface sur une image.
    Et je met ces valeurs dans un tableau.
    Pour certaine image j'obtiens ce qu'il faut et pour d'autre j'ai un message d'erreur :

    Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 35511

    ça veut dire quoi ?

    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
    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
     
    for(double i = 0; i< B;i++){
                for(double j =0 ; j<((B-i)/(double)B * H) ; j++){
     
                       int a = (int) Math.round(i);
                       int b = (int) Math.round(j);
     
     
                    int p = imgglobal.getRGB(width- 1-a, height-1-b);
     
                    int r = (p>>16)&0xff;
                    int g = (p>>8)&0xff;
                    int bl = p&0xff;
     
                    listRed.add(r);
                    listGreen.add(g);
                    listBlue.add(bl);
     
                }
             }
             //*** Calcul moyenne Top Right
                for(int i=0; i < listRed.size() ; i++)
     
                    sommeRed3 = sommeRed3 + listRed.get(i);
                    double moyRed3 =  sommeRed3 / listRed.size();
     
     
                for(int i=0; i < listGreen.size() ; i++)
     
                    sommeGreen3 = sommeGreen3 + listGreen.get(i);
                    double moyGreen3 = sommeGreen3 / listGreen.size();
     
     
                for(int i=0; i < listBlue.size() ; i++)
     
                    sommeBlue3 = sommeBlue3 + listBlue.get(i);
                    double moyBlue3 = sommeBlue3 / listBlue.size();
     
     
               jLabel10.setText("Bottom right: "+ " Red/Green/Blue " + moyRed3 + " / " + moyGreen3 + " / " + moyBlue3  );
     
               int[][] matrice3 = new int[3][col];
     
                   for(int j = 0; j< listRed.size();j++){
     
                        matrice3[0][j]= listRed.get(j);
                        matrice3[1][j]= listBlue.get(j);
                        matrice3[2][j] = listGreen.get(j);
     
                   }
     
                   for(int i = 0; i<3;i++){
                       for(int j = 0;j< listRed.size();j++){
     
     
                           System.out.print(matrice3[i][j]+ " ");
                           }
                       System.out.println("");
     
                   }
                   System.out.println("*");
    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Pouah l'indentation... c'est illisible comme ça...

    Sinon, ça veut dire que tu tapes hors d'un tableau... Faudrait donner la stacktrace complète pour savoir exactement ce qu'il se passe...

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 352
    Par défaut
    Salut.
    Le problème vient probablement d'ici :
    Citation Envoyé par Moux88 Voir le message
    for(double j =0 ; j<((B-i)/(double)B * H) ; j++)
    Mais ça serait mieux avec la stacktrace comme l'a dit Phill_S.
    Et aussi on ne pourra pas dire grand chose sans connaître d'où viennent tes variables B et H.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int[][] matrice3 = new int[3][col];
     
    for(int j = 0; j< listRed.size();j++) {
     
       matrice3[0][j] = listRed.get(j);
       matrice3[1][j] = listBlue.get(j);
       matrice3[2][j] = listGreen.get(j);
    On dimensionne le tableau matrice3 avec col, puis on le parcourt de 0 à taille de listRed ! Il y a quelque chose qui pourrait garantir que col est bien supérieur ou égal à listRed.size() ? Ou pourquoi ne pas faire new int[3][listRed.size()] ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 110
    Par défaut
    Ah oui merci avec int[3][listRed.size()] je sors pas de mon tableau

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

Discussions similaires

  1. Erreur Avec Interbase
    Par smokemon dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/10/2004, 07h24
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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