arraywerte

Status
Nicht offen für weitere Antworten.
U

uchuu111121

Gast
Ich moechte ein Rechteck zeichnen.
Dazu moechte ich Werte aus einem Array uebernehmen.
Aber er zeichnet leider nichts.

Es handelt sich hierbei um ein Applet.
Das Array heisst wurm1.

g.fillRect(wurm1[9][0],wurm1[9][1], 2, 2);

Was mache ich falsch?
 
B

Beni

Gast
Hast du auch eine Farbe gesetzt?
Code:
g.setColor( Color.RED )

Sind auch vernuenftige Werte in dem Array? (-50 ist z.B. schlecht...)
 
U

uchuu11121

Gast
also die farbe ist nicht das problem.



QUELLCODE:

Code:
import java.applet.*;
import java.awt.*;
import java.util.Random;

public class steffenderwurm extends Applet {
    int richtung;
    int i;
  
    public void paint( Graphics g ) {       
        int wurm1[][] = {{30,29,28,27,26,25,24,23,22,21},
                         {20,20,20,20,20,20,20,20,20,20}};
                         
        g.setColor(new Color(0,0,0));
        g.fillRect(0,0,900,600);
        //die folgenden 2 zeilen sind nur zum test gedacht
        g.setColor(new Color(50,50,50));
        g.fillRect(wurm1[9][0],wurm1[9][1], 2, 2);
        for( i=0; i<40; i++ ) {   
          wurm1[9][0]=wurm1[8][0];
          wurm1[9][1]=wurm1[8][1];
          wurm1[8][0]=wurm1[7][0];
          wurm1[8][1]=wurm1[7][1];
          wurm1[7][0]=wurm1[6][0];
          wurm1[7][1]=wurm1[6][1];
          wurm1[6][0]=wurm1[5][0];
          wurm1[6][1]=wurm1[5][1];
          wurm1[5][0]=wurm1[4][0];
          wurm1[5][1]=wurm1[4][1];
          wurm1[4][0]=wurm1[3][0];
          wurm1[4][1]=wurm1[3][1];
          wurm1[3][0]=wurm1[2][0];
          wurm1[3][1]=wurm1[2][1];
          wurm1[2][0]=wurm1[1][0];
          wurm1[2][1]=wurm1[1][1];
          wurm1[1][0]=wurm1[0][0];
          wurm1[1][1]=wurm1[0][1];
          //ich setze keine 4 sondern 5 wegen dem sonderfall 0 !  (keine gute loesung)
          richtung = (int) Math.round((Math.random()*5)); 
          switch ( richtung ) {  
            case 1:
                wurm1[0][0]=wurm1[0][0];
                wurm1[0][1]=wurm1[0][1]-1;
            case 2:
                wurm1[0][0]=wurm1[0][0]+1;
                wurm1[0][1]=wurm1[0][1];
            case 3:
                wurm1[0][0]=wurm1[0][0];
                wurm1[0][1]=wurm1[0][1]+1;
            case 4: 
                wurm1[0][0]=wurm1[0][0]-1;
                wurm1[0][1]=wurm1[0][1];
          }    
          //ab hier zeichnet er den wurm
                g.setColor(new Color(0,222,222));//farbe des wurms
                g.fillRect(wurm1[9][0],wurm1[9][1], 2, 2);
                g.fillRect(wurm1[8][0],wurm1[8][1], 2, 2);
                g.fillRect(wurm1[7][0],wurm1[7][1], 2, 2);
                g.fillRect(wurm1[6][0],wurm1[6][1], 2, 2);
                g.fillRect(wurm1[5][0],wurm1[5][1], 2, 2);
                g.fillRect(wurm1[4][0],wurm1[4][1], 2, 2);
                g.fillRect(wurm1[3][0],wurm1[3][1], 2, 2);
                g.fillRect(wurm1[2][0],wurm1[2][1], 2, 2);
                g.fillRect(wurm1[1][0],wurm1[1][1], 2, 2);
                g.fillRect(wurm1[0][0],wurm1[0][1], 2, 2);
//                try {Thread.sleep(5);}
//                catch (InterruptedException e){}
        }
    }
}

Edit Illuvatar: Codetags bereinigt, es heißt /code und net code/ ;)
 

uchuu111121

Mitglied
so, ich hab mich gerade registriert.
meine icq nummer 213 833 272.

warum sehe ich keinen wurm wenn ich das programm ausfuehre?



vielen dank fuer eure hilfe.
 

L-ectron-X

Gesperrter Benutzer
In der Java-Console ist zu lesen:
Java-Console hat gesagt.:
Exception in thread "AWT-EventQueue-1" java.lang.ArrayIndexOutOfBoundsException: 9
at steffenderwurm.paint(steffenderwurm.java:17)
at sun.awt.RepaintArea.paintComponent(Unknown Source)
at sun.awt.RepaintArea.paint(Unknown Source)
at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
 

mic_checker

Top Contributor
uchuu111121: Schau dir mal das Array genauer an, du versuchst auf die Zeile 9 des Arrays zuzugreifen, dabei besitzt das Array nur 2 Zeilen. Dann ist ja klar das ne ArrayIndexOutOfBoundsException ausgelöst wird.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben