Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1891 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Probleme de stacktrace [/noob inside]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de stacktrace [/noob inside]

n°1387858
sebus--74
unreal 2kx forever...
Posté le 15-06-2006 à 00:43:18  profilanswer
 

Bonsoir :hello: ,  
 
je commence dans l'univers Java, donc soyez clément  :sweat: (ortho  :heink: )
Voila mon probleme, j'ai une erreur que l'on appelle stacktrace (j'ai vite fai vu sa dans le tuto). c'est la suivante :
java.lang.ArrayIndexOutOfBoundsException
 
Il me semble qu'elle concerne les vecteur non? pouvez vous m'en dire plus ? Je reste bloqué la depuis trop lontemps...  
Merci

mood
Publicité
Posté le 15-06-2006 à 00:43:18  profilanswer
 

n°1387862
trevor
laissez la vie vous étonner...
Posté le 15-06-2006 à 01:16:12  profilanswer
 

Ca concerne plutot un tableau ("Array" ) mais il faudrait voir le code.


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1387867
sebus--74
unreal 2kx forever...
Posté le 15-06-2006 à 02:09:45  profilanswer
 

Un tableau ?  :heink:  
 
Voici le code :  
 
 
import java.awt.*;
import java.util.*;
import javax.swing.*;
import gtr.individu.*;
import java.lang.String;
import java.io.*;
 
/**
 *
 * @author  Admin
 */
public class JdialogClient extends javax.swing.JDialog {
     
    private Vector<Individu> client = new Vector<Individu>();
    private String nom = new String("PECHEUX" );
    /** Creates new form JdialogClient */
    public JdialogClient(java.awt.Frame parent, boolean modal)  
 
    {
        super(parent, modal);
        initComponents();
         
        this.radLoc.setSelected(true);
        this.panLoc.setVisible(true);
        this.radAchat.setSelected(false);
        this.panAchat.setVisible(false);
         
        int i= posVect();
        System.out.println(client.get(i).getNom());
        System.out.println(client.get(i).getPrenom());

    }
 
 
...
 
 
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new JdialogClient(new javax.swing.JFrame(), true).setVisible(true);
            }
        });
    }
     
    int posVect(){
        int tempo=0;
        int  i=0;
        while (i<client.size()){
            String indi = new String(client.get(i).getNom());
            if (nom.equals(indi)==true){
                tempo = i;
            }else{
                i++;
            }    
        }
        System.out.println("vrai :"+client.get(2).getNom());
        System.out.println("vrai :" + client.get(2).getPrenom());

        return tempo;
    }
 
 
En gras les lignes où je sousponne les erreurs...


Message édité par sebus--74 le 15-06-2006 à 02:11:02
n°1387868
zapan666
Tout est relatif
Posté le 15-06-2006 à 02:26:20  profilanswer
 

La stack Trace te donne la ligne où est l'erreur normalement...


---------------
my flick r - Just Tab it !
n°1387904
Bidem
Posté le 15-06-2006 à 09:22:04  profilanswer
 

Infos en vrac :
 
 - Une stacktrace est composée de plusieures lignes et se lit de haut en bas. En remontant la stacktrace, tu va tomber sur une ligne indiquant une de tes classes avec un numéro de ligne, c'est là qu'il faut regarder pour comprendre l'erreur.
 
 - new String("PECHEUX" ), c'est inutile et absurde, remplace par :
     private String nom = "PECHEUX"; // tout simplement
   de même  
     String indi = client.get(i).getNom();
 
   d'une façon générale il ne faut jamais utiliser le constructeur new String(uneString) car les string sont des objets immuables
 
 - remplace  

Code :
  1. if (nom.equals(indi)==true){
  2.   tempo = i;
  3.   // si on arrive ici, on tombe dans une boucle infinie
  4.   // car i n'évolue pas ...
  5. } else {
  6.   i++;
  7. }


 
   par

Code :
  1. if (nom.equals(indi)){
  2.   return i;
  3.   /* ou bien
  4.   tempo = i;
  5.   break; */
  6. } else {
  7.   i++
  8. }


 
 - l'erreur vient surement de client.get(2) s'il n'y a moins de 2 éléments
   car les indices vont de 0 à size -1

n°1387956
trevor
laissez la vie vous étonner...
Posté le 15-06-2006 à 10:46:10  profilanswer
 

On sait pas non plus la structure de Individu...

n°1388107
Bidem
Posté le 15-06-2006 à 13:32:49  profilanswer
 

Citation :

Ca concerne plutot un tableau ("Array" ) mais il faudrait voir le code.


 
Sissi, ça peut être les Vector (c'est l'exception que ça lance en cas de problème d'indice)
 

Citation :

On sait pas non plus la structure de Individu...


 
On peut imaginer que getNom() et getPrenom() vont retourner une String donnant le nom et le prénom d'une personne :p


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Probleme de stacktrace [/noob inside]

 

Sujets relatifs
[resolu][vb6]probleme extraterrestre avec 3 boutons radiosprobleme avec cadre css ..resolution
[html] problème de tableau ( débutant )Problème Tortoise CVS sous win
Programmation C, problème :([C] SDL_Image.h ect... problème de compilation il aime po mes images..
Problème : le CSS ne s'applique pas à la page en HTMLprobleme tableau
[pas résolu] problème d'affichage de page web[Resolu]Probleme avec Windows Installer sous .NET pour les raccourc
Plus de sujets relatifs à : Probleme de stacktrace [/noob inside]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR