• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Niezrozumiały dla mnie log kompilacji

Object Storage Arubacloud
0 głosów
395 wizyt
pytanie zadane 6 grudnia 2016 w Java przez Jonki Dyskutant (8,180 p.)

Zaczynam programować w JavaFX i natknąłem się na problem, którego nie mogę naprawić. Otóż taki log kompilacji: 

Exception in Application start method
Exception in thread "main" 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$155(LauncherImpl.java:182)
    at java.lang.Thread.run(Thread.java:745)
Caused by: javafx.fxml.LoadException: 
/C:/Users/Jonatan/IdeaProjects/Social%20Network/target/classes/FXML_LoginRegisterPanel/Main.fxml
 
    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2571)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
    at LoginRegisterPanel.Main.start(Main.java:22)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(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$148(WinApplication.java:191)
    ... 1 more
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2566)
    ... 12 more
Caused by: java.lang.NullPointerException: Children: child node is null: parent = StackPane[id=mainStackPane]
    at javafx.scene.Parent$2.onProposedChange(Parent.java:435)
    at com.sun.javafx.collections.VetoableListDecorator.add(VetoableListDecorator.java:206)
    at LoginRegisterPanelController.MainController.setScreen(MainController.java:43)
    at LoginRegisterPanelController.MainController.loadLoginPanel(MainController.java:38)
    at LoginRegisterPanelController.MainController.initialize(MainController.java:21)
    ... 23 more 

prawdopodobnie podczas

public void setScreen(Pane pane) {
        mainStackPane.getChildren().clear();
        mainStackPane.getChildren().add(pane);
    }

1 odpowiedź

0 głosów
odpowiedź 6 grudnia 2016 przez Andrus19 Bywalec (2,260 p.)
Ciężko z samych logów coś wymyślić no ale jak dla mnie to debugger w dłoń i sprawdzić czemu mainStackPane ma child nulla...
komentarz 6 grudnia 2016 przez Jonki Dyskutant (8,180 p.)
package LoginRegisterPanel;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

/**
 * Created by Jonatan on 2016-12-06.
 */
public class Main extends Application {

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

    @Override
    public void start(Stage primaryStage) throws Exception {
        FXMLLoader loader = new FXMLLoader(this.getClass().getResource("/FXML_LoginRegisterPanel/Main.fxml"));

        StackPane stackPane = loader.load();

        Scene scene = new Scene(stackPane, 330, 250);

        primaryStage.setScene(scene);

        primaryStage.show();
    }
}
import java.io.IOException;

/**
 * Created by Jonatan on 2016-12-06.
 */
public class MainController {

    @FXML
    StackPane mainStackPane;

    @FXML
    public void initialize() {
        loadLoginPanel();
    }

    public void loadLoginPanel() {
        FXMLLoader loader = new FXMLLoader(this.getClass().getResource("/FXML_LoginRegisterPanel/Login.fxml"));

        Pane pane = null;

        try {
            pane = loader.load();
        } catch(IOException e) {

        }

        LoginController loginController = loader.getController();
        loginController.setMainController(this);

        setScreen(pane);
    }

    public void setScreen(Pane pane) {
        mainStackPane.getChildren().clear();
        mainStackPane.getChildren().add(pane);
    }

    public void setScreen(GridPane gridPane) {
        mainStackPane.getChildren().clear();
        mainStackPane.getChildren().add(gridPane);
    }
}

Wywala błąd przy 

mainStackPane.getChildren().add(pane);
komentarz 7 grudnia 2016 przez Mateusz51 Nałogowiec (28,180 p.)
Dodaj do bloku catch obsługe wyjątków i sprawdź czy load prawidłowo pobiera pane. Bo w twoim logu masz null pointer exeption tak jakby pane nadal było nulem
komentarz 7 grudnia 2016 przez Jonki Dyskutant (8,180 p.)
Po ponad 4 godzinach znalazłem błąd. W jednym miejscu w kontrolerze dla zmiennej dałem typ Label zamiast CheckBox. Dzięki za pomocne sugestie.

Podobne pytania

0 głosów
1 odpowiedź 220 wizyt
pytanie zadane 2 grudnia 2021 w Java przez DzikieHarce Użytkownik (690 p.)
–1 głos
1 odpowiedź 122 wizyt
pytanie zadane 16 grudnia 2016 w Java przez Jonki Dyskutant (8,180 p.)
0 głosów
0 odpowiedzi 350 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...