Array - urgente

5 respostas
B

po galera, alguem pode ajudar a solucionar o erro de matriz que esta dando? E mto urgente. O metodo e o seguinte:

public void  updateObjects(){ // método que coloca as novas trcks  na  animaçao
    linha++;

    boolean sts =true;
    boolean tpf= false;
    boolean tpt= true;

    animImg traços[];
    traços= new animImg[max];

    for(coluna = 1; coluna <= 6; coluna++){
      if(mtrzM[linha][coluna] == true){
        int i = max-1;
        switch(coluna){
          case 1:
            traços[i] = new animImg();
            traços[i].CrtTrck(prLin, col1 , tpt);
            j++;
            break;
          case 2:
            traços[i] = new animImg();
            traços[i].CrtTrck(prLin, col2 , tpt);
            j++;
            break;
          case 3:
            traços[i] = new animImg();
            traços[i].CrtTrck(prLin, col3 , tpf);
            j++;
            break;
          case 4:
            traços[i] = new animImg();
            traços[i].CrtTrck(prLin, col4 , tpt);
            j++;
            break;
          case 5:
            traços[i] = new animImg();
            traços[i].CrtTrck(prLin, col5 , tpt);
            j++;
            break;
          case 6:
            traços[i] = new animImg();
            traços[i].CrtTrck(prLin, col6 , tpf);

            break;
          default:

            break;
         }

      }

      for(j=max; j==0; j--){

        if(traços[j].getSt()){
          traços[j].setCord ((traços[j].getx() + pPFr) , traços[j].gety());
          if(traços[j].getx()== ultLin){
            traços[j] = null;
          }
        }
     }
     if(linha == mtrzM.length){
       gon = false;
     }


   }
  }

Void main:

public static void main(String args[]){
  boolean mtrz[][] = {{ true,false,true,false,true,true },
                      {true,false,true,false,true,false},
                      {false,false,true,false,false,true}};
  int nm=1;
  long frs = 5;
  BaqLoop b= new BaqLoop(mtrz , nm , frs);
}

Esta dando o erro :

Exception in thread Thread-2 java.lang.ArrayIndexOutOfBoundsException: 6

at BaqLoop.updateObjects(BaqLoop.java:66)

at BaqLoop.run(BaqLoop.java:11)

at java.lang.Thread.run(Thread.java:595)

5 Respostas

Roger75

Você está tentando acessar uma posição do seu array que não existe. Por exemplo, se o seu array tem 5 elementos, você está pedindo o sexto.

Por que você não debuga o seu programa? Pode usar o Eclipse para isso.

Ticianne

é exatamente isso, no metodo main, vc declara um array de 5, no seu metodo, vc manda o loop ir ate 6…

P

sim, e lembre-se que a primeira posição do seu array nao tem endereço 1…
e sim endereçamento 0

peczenyj

converta isso:
for(coluna = 1; coluna <= 6; coluna++){

em isto:
for(coluna = 0; coluna < 6; coluna++){

e readapte o seu switch.

B

valeu galera, eu percebi logo depois q postei

Criado 24 de maio de 2006
Ultima resposta 24 de mai. de 2006
Respostas 5
Participantes 5