Erste Schritte Java.lang.NullPointer.Exception

Destify

Mitglied
Liebe Community,

mit der Exception im Titel schlage ich mich durchgehend rum.

Es geht um ein paar Rechtecke die ich als Spielfeld nutzen will dazu habe ich ein zweidimensionales Spielfeld Array in der Klasse Spielfeld deklariert und in der Klasse Main ein zweidimensionales RECT Array mit der selben Größe wie das erste Array. Nun habe ich in der Methode InitRectArray() jeweil dem RECT Array immer ein Rechteck pro Inhalt übergeben.
Aber sobald ich dann zu dem Punkt komme an dem ich die Größe, Position etc. der einzelnen Rechtecke bestimmen will bekomme ich die Exception.

Hoffe Ihr findet vielleicht meinen Fehler:

Caused by: java.lang.NullPointerException
at main.InitRectArray(main.java:45)
at main.start(main.java:24)

Code:
import com.sun.javafx.font.directwrite.RECT;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;

public class main extends Application {

    private spielfeld spielfeld = new spielfeld(0);
    private Rectangle[][] RECT;

    private Pane pane = new Pane();

    public static void main(String[] args) {
        Application.launch(main.class);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        InitRectArray();
        DrawGrid();
        Scene scene = new Scene(pane);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private void InitRectArray() {
        int mx;
        int my = 0;
        int LÄNGE = 50;
        int DICKE = 50;
        RECT   = new Rectangle[spielfeld.getLengthY()][spielfeld.getLengthX(0)];
        for (int a = 0; a < spielfeld.getLengthY(); a++) {
            for (int b = 0; b < spielfeld.getLengthX(a); b++) {
                RECT[a][b] = new Rectangle();

                for (int y = 0; y < spielfeld.getLengthY(); y++) {
                    mx = 0;
                    for (int x = 0; x < spielfeld.getLengthX(y); x++) {
                      
                        if (spielfeld.getValue(x, y) == 1) {
                            RECT[y][x].setX(mx - LÄNGE);
                            RECT[y][x].setY(my + DICKE);
                            RECT[y][x].setHeight(LÄNGE);
                            RECT[y][x].setWidth(LÄNGE);

                        }
                    }
                }
            }
        }

    }

    public void DrawGrid(){
        for(int y = 0; y<RECT.length; y++){
            for(int x = 0; x<RECT[y].length; x++){
                pane.getChildren().add(RECT[y][x]);
            }
        }
    }
}

Code:
public class spielfeld {

    private int spielfeld[][] = new int[10][10];
    private int belegt[][] = new int[spielfeld.length][spielfeld[0].length];

    public spielfeld(int s) {
        InitSpielfeld(s);
    }

    // Klickbar & !Belegt = 0
    public int getLengthX(int Spalte) {
        return spielfeld[Spalte].length;
    } // Belegt = 1

    public int getLengthY() {
        return spielfeld.length;
    }

    public int getValue(int x, int y) {
        return spielfeld[y][x];
    }

    private void InitSpielfeld(int s) {
        int Spielfeld0[][] = {
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
                {1, 1, 1, 1, 1, 1, 1, 1, 1, 1},

        };

        if (s == 0) {
            for (int y = 0; y < Spielfeld0.length; y++) {
                for (int x = 0; x < Spielfeld0[y].length; x++) {
                    spielfeld[y][x] = 0;
                    spielfeld[y][x] = Spielfeld0[y][x];
                }
            }
        }
    }
}
 

Robat

Top Contributor
for (int a = 0; a < spielfeld.getLengthY(); a++) {
for (int b = 0; b < spielfeld.getLengthX(a); b++) {
RECT[a] = new Rectangle();

for (int y = 0; y < spielfeld.getLengthY(); y++) {
mx = 0;
for (int x = 0; x < spielfeld.getLengthX(y); x++) {

if (spielfeld.getValue(x, y) == 1) {
RECT[y][x].setX(mx - LÄNGE);
RECT[y][x].setY(my + DICKE);
RECT[y][x].setHeight(LÄNGE);
RECT[y][x].setWidth(LÄNGE);

}
}
}
}
}
Mal / schreib dir am besten mal auf einem Blatt Papier auf, was hier passiert bzw wann hier was passiert.
Interessant wird hierbei sein, welche for-Schleife wann auf welche Indizes zugreift und ab welcher Stelle in der for-Schleife ein Eintrag im Array bereits initialisiert ist ;)
 

Destify

Mitglied
Oh sorry das ist mein erster Beitrag und ich dachte Zeilen stehen dabei.

Die Exception taucht bei dem ersten RECT[y][x].setX(mx-LÄNGE)

also in diesem Teil des Codes:

Code:
for (int y = 0; y < spielfeld.getLengthY(); y++) {
                    mx = 0;
                    for (int x = 0; x < spielfeld.getLengthX(y); x++) {
                    
                        if (spielfeld.getValue(x, y) == 1) {
                            RECT[y][x].setX(mx - LÄNGE);
                            RECT[y][x].setY(my + DICKE);
                            RECT[y][x].setHeight(LÄNGE);
                            RECT[y][x].setWidth(LÄNGE);

                        }
                    }
                }

Ich glaube das es irgendwie mit der initialisierung der Rectangle Objekte zu tun haben muss aber ich komm einfach nicht drauf o_O

Die Objekte initialisiere ich hier:

Code:
RECT   = new Rectangle[spielfeld.getLengthY()][spielfeld.getLengthX(0)];
        for (int a = 0; a < spielfeld.getLengthY(); a++) {
            for (int b = 0; b < spielfeld.getLengthX(a); b++) {
                RECT[a][b] = new Rectangle();


for (int y = 0; y < spielfeld.getLengthY(); y++) {
                    mx = 0;
                    for (int x = 0; x < spielfeld.getLengthX(y); x++) {
                    
                        if (spielfeld.getValue(x, y) == 1) {
                            RECT[y][x].setX(mx - LÄNGE);
                            RECT[y][x].setY(my + DICKE);
                            RECT[y][x].setHeight(LÄNGE);
                            RECT[y][x].setWidth(LÄNGE);

                        }
                    }
}
}
 

Robat

Top Contributor
In Worte gefasst machst du momentan folgendes: du durchläufst das Array um alle Einträge zu initialisiert. Nach dem du ein Eintrag initialisiert hast durchläufst du das gesamte Array noch mal und greifst auf alle Elemente zu. Dort knallt es dann weil du ja noch nicht alle Elemente initialisiert hast.
 

Destify

Mitglied
Dann müsste aber diese Lösung hier doch eigentlich funktionieren?

Code:
RECT   = new Rectangle[spielfeld.getLengthY()][spielfeld.getLengthX(0)];
      
        for(int y = 0; y < spielfeld.getLengthY(); y++){
            for(int x = 0; x < spielfeld.getLengthX(y); x++){
                RECT[y][x] = new Rectangle(50,50);
            }
        }
        int my = 0;
        int mx; 
        for(int y = 0; y < spielfeld.getLengthY(); y++) {
            mx = 0;
            for (int x = 0; x < spielfeld.getLengthX(y); x++) {
                RECT[y][x].setX(mx - 50);
                RECT[y][x].setY(my + 50);
                RECT[y][x].setFill(Color.BLACK);
            }
        }

ich mein Hey ich bin immerhin die Exceptions losgeworden aber funktionieren tut es trotzdem nicht
 

Destify

Mitglied
Es hat sich mitlerweile erledigt; Ich hab mein mx nach jedem Durchlauf nicht erhört und deswegen hat meine DrawGrid Methode auch nichts gezeichnet.

Danke für die Hilfe; Beim nächsten mal gibts mehr Auskunft über mein Problem :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
H JUnit in Eclipse: java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 9
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
B java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 3
P java.lang.ClassCastException Bedeutung und Lösung Java Basics - Anfänger-Themen 3
J Erste Schritte java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 4
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
T Compiler-Fehler java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 2
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
N jodaTime java.lang.IllegalArgumentException: Invalid format Java Basics - Anfänger-Themen 3
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Erste Schritte java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
R java.lang.StringIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
H java.lang.NoClassDefFoundError Run as>> Run on Server Java Basics - Anfänger-Themen 2
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S Java memory fehler: Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap spa Java Basics - Anfänger-Themen 5
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
P Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 1
C Hilfe!!! java.lang.ClassCastException Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
W Methoden Rückgabedatentyp java.util.Map<java.lang.String,? extends ...> Java Basics - Anfänger-Themen 4
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
F Exception in thread main java.lang.StackOverflowError Java Basics - Anfänger-Themen 3
K Caused by: java.lang.NoClassDefFoundError: org/mindrot/jbcrypt/BCrypt Java Basics - Anfänger-Themen 0
S java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 4
OnDemand java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 9
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
J Klassen java.lang.String - lexikographisches Sortieren Java Basics - Anfänger-Themen 5
P Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 3
T Erste Schritte import java.lang.System.out Java Basics - Anfänger-Themen 4
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H Classpath java.lang.NoClassDefFoundError externe Libary Java Basics - Anfänger-Themen 4
M Exception in thread "main" java.lang.NoClassDefFoundError: MeineKlasse Java Basics - Anfänger-Themen 12
X Applet Fehler: java.lang.reflect.InvocationTargetException Java Basics - Anfänger-Themen 45
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
H java.lang.IndexOutOfBoundsException bei verschachtelter ArrayList Java Basics - Anfänger-Themen 9
S Fehler: "java.lang.NullPointerException" Java Basics - Anfänger-Themen 6
V java.lang.NoSuchMethodError Java Basics - Anfänger-Themen 2
J java.lang.math asin() Java Basics - Anfänger-Themen 18
I Erste Schritte Ausführfehler: java.lang.NullPointerException Java Basics - Anfänger-Themen 3
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
K Error: java.lang.NoSuchMethodException Java Basics - Anfänger-Themen 2
M Compiler-Fehler Fehler Meldung java.lang.NumberFormatException: empty String Java Basics - Anfänger-Themen 2
G java.lang.ClassNotFoundException Java Basics - Anfänger-Themen 4
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
S String index out of range: 8 at java.lang.String.substring(Unknown Source) Java Basics - Anfänger-Themen 13
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 10
X Interpreter-Fehler "java.lang.NullPionterException: null" bei BlueJ Java Basics - Anfänger-Themen 10
P java.lang.ClassCastException Java Basics - Anfänger-Themen 2
D java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 11
S expected java.lang.string but found char Java Basics - Anfänger-Themen 5
S Umgebungsvariable Exception in thread "main" java.lang.UnsatisfiedLinkError: no J3D in java.librar y.path Java Basics - Anfänger-Themen 15
S Compiler-Fehler java.lang.SecurityException: Invalid signature file digest for Manifest main attributes Java Basics - Anfänger-Themen 5
M Klassen Exception in thread "main" java.lang.NoClassDefFoundError: Java Basics - Anfänger-Themen 2
A Compiler-Fehler unreported exception java.lang.Exception; must be caught or declared to be thrown Java Basics - Anfänger-Themen 7
K Fehlermeldung: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 Java Basics - Anfänger-Themen 4
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
J java.lang.NullPointerException Java Basics - Anfänger-Themen 18
K Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 6
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2
K OOP java.lang.NullPointerException Java Basics - Anfänger-Themen 2
N iText PDF Fehler, java.lang.ClassNotFoundException: com.lowagie.text.Phrase Java Basics - Anfänger-Themen 7
M java.lang.NumberFormatException-Problem Java Basics - Anfänger-Themen 6
H java.lang.NoSuchMethodError: Java Basics - Anfänger-Themen 5
J java.lang.UnsatisfiedLinkError: Java Basics - Anfänger-Themen 9
T List in java.lang.Object... einfügen Java Basics - Anfänger-Themen 12
M java.lang.StringTokenizer Java Basics - Anfänger-Themen 4
I java.lang.String cannot be cast to OBJEKT Java Basics - Anfänger-Themen 8
P java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory Java Basics - Anfänger-Themen 1
Y java.lang.NoSuchMethodError: main Java Basics - Anfänger-Themen 9
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
D java.lang.outofmemoryerror java heap space bei Hashtable Java Basics - Anfänger-Themen 3
Spin Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: data must Java Basics - Anfänger-Themen 10
S Fehlermeldung: java.lang.NullPointerException Java Basics - Anfänger-Themen 10
T Fehlermeldung: java.lang.NoClassDefFoundError Java Basics - Anfänger-Themen 10
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben