JavaFX kann NullPointerException nicht auflösen... :(

ZH1896ZH

Mitglied
Hallo,
Bin wiedermal auf ein Problem gestossen beim MineSweeper-Projekt. Es geht um das Erstellen des Spielfelds. Die zwei Methoden (reload und createContent) sind dafür da. Es wird eine neue Pane erstellt und diese mit Buttons, etc. befüllt. Die Methode reload (welche createContent aufruft) wird beim Start des Programmes, sowie bei Benutzerinteraktionen (Spielfeldgrösse wird verändert == neues Spiel) aufgerufen. Jetzt folgender Sachverhalt: Programm startet nicht mehr korrekt auf (siehe Stack Trace), ich habe nun die Methode createContent() durch createContenttt() ausgewechselt, um zu testen woran es liegene könnte. Das Programm startet nun auf und wenn die Spielfeldgrösse verändert wird über die MenuBar funktioniert die Methode createContent() wunschgemäss. Nur beim Start scheint irgendetwas nicht zu funktionieren. Wir zerbrechen uns schon den ganzen Tag den Kopf daran...hoffe jemand aus dem Forum kann uns einen Gedankenanstoss geben.

Anbei die Code-Auszüge:

Methoden:
- reload():
Java:
public static void reload() {//methode works LS

        MineSweeperView.grid = new StackButton[MineSweeperView.gridSize][MineSweeperView.gridSize];

        MineSweeperView.secondsPassed = 0;

        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                MineSweeperView.secondsPassed++;
            };
        };
        MineSweeperView.timer.cancel();
        MineSweeperView.timer = new Timer();
        MineSweeperView.timer.schedule(task, 1000, 1000);

        MineSweeperView.root.getChildren().remove(1);
        MineSweeperView.root.getChildren().add(createContent());
        MineSweeperView.primaryStage.sizeToScene();
    }
- createContent():
Java:
    protected static Parent createContent() { //idk why method doesnt work (LS)
        // Reset in case of a new game
        MineSweeperView.numBombs = 0;
        MineSweeperView.foundBombs = 0;

        Pane secondroot = new Pane();
        secondroot.setPrefSize(MineSweeperView.gridSize * 40, MineSweeperView.gridSize * 40);

        // Create the StackButton and Bombs on percentage

        for (int i = 0; i < MineSweeperView.gridSize; i++) {
            for (int j = 0; j < MineSweeperView.gridSize; j++) {

                StackButton stackButton = new StackButton(j, i, Math.random() < (double) MineSweeperView.bombPercent);
                MineSweeperView.grid[j][i] = stackButton;
                secondroot.getChildren().add(stackButton);

            }
        }
        // add the value under the buttons and the color

        for (int i = 0; i < MineSweeperView.gridSize; i++) {
            for (int j = 0; j < MineSweeperView.gridSize; j++) {

                int bombNeighbours = 0;

                ArrayList<StackButton> neighbours = new ArrayList<StackButton>();

                int[] locs = new int[] { -1, -1, -1, 0, -1, 1, 0, -1, 0, 1, 1, -1, 1, 0, 1, 1 };

                for (int l = 0; l < locs.length; l++) {
                    int dx = locs[l];
                    int dy = locs[++l];

                    int newX = dx + j;
                    int newY = dy + i;

                    if (newX >= 0 && newX < MineSweeperView.gridSize && newY >= 0 && newY < MineSweeperView.gridSize) {
                        neighbours.add(MineSweeperView.grid[newX][newY]);
                        if (MineSweeperView.grid[newX][newY].hasBomb) {
                            bombNeighbours++;
                        }
                    }
                }

                MineSweeperView.grid[j][i].numBombs = bombNeighbours;
                MineSweeperView.grid[j][i].neighbours = neighbours;

                Color[] colors = { null, Color.BLUE, Color.GREEN, Color.RED, Color.DARKBLUE, Color.DARKRED, Color.CYAN,
                        Color.BLACK, Color.DARKGRAY };

                MineSweeperView.grid[j][i].color = colors[MineSweeperView.grid[j][i].numBombs];
            }
        }
        return secondroot;

    }
- createContenttt(): (testmethode!)
Java:
    public static Pane createContenttt() {//testmethod works (LS)
        
        Pane roott = new Pane();
        roott.getChildren().add(new Button("Hallo"));
        return roott;
    
    }

}
Ausschnitt aus Controller:

Java:
view.smallSizeItem.setOnAction(e -> {
            MineSweeperView.gridSize = 10;
            model.reload();
        });
        
        view.mediumSizeItem.setOnAction(e -> {
            MineSweeperView.gridSize = 15;
            model.reload();
        });

        view.largeSizeItem.setOnAction(e -> {
            MineSweeperView.gridSize = 20;
            model.reload();
        });

Exception in Application start method
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at minesweeper.MineSweeperModel.createContent(MineSweeperModel.java:62)
at minesweeper.MineSweeperView.<init>(MineSweeperView.java:76)
at minesweeper.MineSweeperMVC.start(MineSweeperMVC.java:15)

at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:186)
... 1 more
Exception running application minesweeper.MineSweeperMVC



Zeilen aus Stack Trace:


- Model Z62
Java:
        // Create the StackButton and Bombs on percentage

        for (int i = 0; i < MineSweeperView.gridSize; i++) {
            for (int j = 0; j < MineSweeperView.gridSize; j++) {

                StackButton stackButton = new StackButton(j, i, Math.random() < (double) MineSweeperView.bombPercent);
                MineSweeperView.grid[j][i] = stackButton; //Zeile 62!!
                secondroot.getChildren().add(stackButton);

            }
        }

- View Z76:
Java:
// MenuBar und Buttons werden der VBox(root) hinzugefügt
        root.getChildren().addAll(menuBar, model.createContent());//createContent funktioniert hier noch nicht nur meine testmethode

- MVC Z15:
Java:
view = new MineSweeperView(primaryStage, model);

Beste Grüsse
ZH1896ZH
 
K

kneitzel

Gast
Also du hast uns hier einige Auszüge wild durcheinander hingeschmissen - da ist es sinnvoller, die Dateien komplett anzugeben, als nur eine Zeile.

Vermutlich hast Du die MineSweeperView.grid nicht richtig initialisiert. Aber man kann dem Ablauf ja nicht wirklich folgen. Wie ist das Grid deklariert? Fehlt evtl. einfach nur ein MineSweeperView.grid = new StackButton[MineSweeperView.gridSize][MineSweeperView.gridSize]; wie Du es in reload hast?
 

ZH1896ZH

Mitglied
Also du hast uns hier einige Auszüge wild durcheinander hingeschmissen - da ist es sinnvoller, die Dateien komplett anzugeben, als nur eine Zeile.

Vermutlich hast Du die MineSweeperView.grid nicht richtig initialisiert. Aber man kann dem Ablauf ja nicht wirklich folgen. Wie ist das Grid deklariert? Fehlt evtl. einfach nur ein MineSweeperView.grid = new StackButton[MineSweeperView.gridSize][MineSweeperView.gridSize]; wie Du es in reload hast?

dein Vorschlag hat funktioniert!!
Danke für deine Hilfe.
Und ja nächstes Mal hau ich die ganzen Dateien rein.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
xehpuk Swing NullPointerException: Random-Instanz anfangs nicht initialisiert AWT, Swing, JavaFX & SWT 4
_user_q Objekte vom MainController in anderen Controller verwenden und andersherum (NullPointerException) AWT, Swing, JavaFX & SWT 14
Jose05 Nullpointerexception bei toArray() AWT, Swing, JavaFX & SWT 9
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
N Nur bei einem Textfiled Nullpointerexception bei getText() AWT, Swing, JavaFX & SWT 1
R NullPointerException beim Start des Fensters AWT, Swing, JavaFX & SWT 1
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
M NullPointerException / Controller AWT, Swing, JavaFX & SWT 4
R Swing Java9 NullPointerException bei JComboBox AWT, Swing, JavaFX & SWT 13
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
zhermann NullPointerException bei Label.setText() AWT, Swing, JavaFX & SWT 5
it_is_all jLabel.setText -> Char in Str: NullpointerException AWT, Swing, JavaFX & SWT 1
D NullPointerException observableList AWT, Swing, JavaFX & SWT 4
J NullPointerException bei getText() AWT, Swing, JavaFX & SWT 3
S JavaFX NullPointerException bei Versuch ImageView zu ändern AWT, Swing, JavaFX & SWT 1
K JFileChooser NullPointerException AWT, Swing, JavaFX & SWT 7
T Swing NullPointerException beim auslesen von jTextField - Anfänger! AWT, Swing, JavaFX & SWT 3
S Swing [CLOSED] NullPointerException bei BorderLayout() AWT, Swing, JavaFX & SWT 8
G Swing NullPointerException und JXImageView AWT, Swing, JavaFX & SWT 4
L exception in thread awt-eventqueue-0 java.lang.nullpointerexception AWT, Swing, JavaFX & SWT 2
U Swing NullPointerException trotz Referenz auf Textfield & Button AWT, Swing, JavaFX & SWT 6
L NullpointerException und Probleme mit repaint() AWT, Swing, JavaFX & SWT 11
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
K JavaFX Pfad öffen NullPointerException AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
L Event Handling windowAdapter - NullPointerException beim Schließen AWT, Swing, JavaFX & SWT 5
J JTable verursacht NullPointerException.Ratlos. AWT, Swing, JavaFX & SWT 5
C JButton NullPointerException AWT, Swing, JavaFX & SWT 2
Q getGraphics() - NullPointerException AWT, Swing, JavaFX & SWT 8
C NullPointerException im MVC Muster AWT, Swing, JavaFX & SWT 9
V Nullpointerexception (etwas mit thread und jframe) AWT, Swing, JavaFX & SWT 3
M JTable Drucken NullpointerException +JTable speichern AWT, Swing, JavaFX & SWT 6
T Swing Laden eines Icons auf JButton liefert NullPointerException AWT, Swing, JavaFX & SWT 8
M Exception in thread "Thread-3" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 18
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
1 JComponent -> java.lang.NullPointerException AWT, Swing, JavaFX & SWT 13
B Swing NullPointerException bei actionPerformed() AWT, Swing, JavaFX & SWT 2
E java.lang.NullPointerException AWT, Swing, JavaFX & SWT 14
R NullPointerException AWT, Swing, JavaFX & SWT 16
3 Swing NullPointerException in AW Event-0? AWT, Swing, JavaFX & SWT 5
C SWT NullPointerException AWT, Swing, JavaFX & SWT 12
J NullPointerException bei Benutzung vom TableCellRenderer AWT, Swing, JavaFX & SWT 3
A AWT Methodenaufruf "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 4
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
B NullPointerException bei JFrame AWT, Swing, JavaFX & SWT 2
D JPanel / NullPointerException AWT, Swing, JavaFX & SWT 4
G LookAndFeel Dynamisches Einlesen von LookAndFeels - NullPointerException AWT, Swing, JavaFX & SWT 4
E Login wird durch NullPointerException abgebrochen AWT, Swing, JavaFX & SWT 10
K NullPointerException ohne CodeLink AWT, Swing, JavaFX & SWT 6
L NullPointerException JFreeChart AWT, Swing, JavaFX & SWT 10
F NullPointerException - HILFE!! AWT, Swing, JavaFX & SWT 20
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
H Swing NullPointerException in JTable bei vielen Einträgen AWT, Swing, JavaFX & SWT 2
S Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException AWT, Swing, JavaFX & SWT 7
S NullPointerException bei JFileChooser AWT, Swing, JavaFX & SWT 8
X JList Probleme mit NullPointerException AWT, Swing, JavaFX & SWT 3
S NullPointerException bei Aufruf von updateUI() beim JFrame AWT, Swing, JavaFX & SWT 12
Z NullPointerException bei SplashScreen AWT, Swing, JavaFX & SWT 5
C NullPointerException bei Doppelpufferung AWT, Swing, JavaFX & SWT 3
F CardLayout.show() -> NullPointerException AWT, Swing, JavaFX & SWT 4
B NullPointerException bei String vergleich AWT, Swing, JavaFX & SWT 5
K NullPointerException bei JTextField AWT, Swing, JavaFX & SWT 8
L Problem mit "NullPointerException" bei grafischer AWT, Swing, JavaFX & SWT 3
D bei Thread in JComponent malen NullPointerException AWT, Swing, JavaFX & SWT 3
loadbrain JTextFields & java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
F JProgressBar und NullPointerException AWT, Swing, JavaFX & SWT 4
D javax.swing.Timer bringt NullPointerException AWT, Swing, JavaFX & SWT 4
R TextField bringt NullPointerException bei setVisible() AWT, Swing, JavaFX & SWT 12
A NullPointerException in einer JList AWT, Swing, JavaFX & SWT 7
F Fehler: java.lang.NullPointerException AWT, Swing, JavaFX & SWT 2
S Brauche Hilfe mit JFrame - NullPointerException AWT, Swing, JavaFX & SWT 7
A NullPointerException - warum? AWT, Swing, JavaFX & SWT 5
G NullPointerException bei Aufruf von JTabbedPane.getSelectedI AWT, Swing, JavaFX & SWT 7
G Problem mit NullPointerException AWT, Swing, JavaFX & SWT 11
M JTable verursacht NullPointerException AWT, Swing, JavaFX & SWT 8
M NullPointerException AWT, Swing, JavaFX & SWT 3
J NullPointerException bei getSelectedItem AWT, Swing, JavaFX & SWT 10
G Bekomme immer: NullPointerException AWT, Swing, JavaFX & SWT 2
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
M Mandelbrot mit BigDecimal erstellen und in der UI zeichnen, funktionierte nicht. AWT, Swing, JavaFX & SWT 1
H JavaFX PixelWriter.setColor setzt Farbe nicht AWT, Swing, JavaFX & SWT 2
M JavaFX Diagonale Linie nicht ausgegeben/angezeigt AWT, Swing, JavaFX & SWT 1
M JavaFX Mandelbrot-bild noch nicht optimiert AWT, Swing, JavaFX & SWT 7
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3
P thread nimmt veränderte boolean nicht AWT, Swing, JavaFX & SWT 7
P Animation läuft nicht korrekt AWT, Swing, JavaFX & SWT 8
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G JOptionPane zeigt nicht an was ich will AWT, Swing, JavaFX & SWT 2
S JavaFX WebView zeigt bestimmte Websites nicht an AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben