JavaFX - FXMLLoader - Location is not set

JavaFX - FXMLLoader - Location is not set
WY
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 3 lata
  • Postów:134
0

Witam wszystkich,

Piszę mały projekt przy użyciu JavyFX. Problem pojawił się dość szybko, mianowicie tuż po zalogowaniu się użytkownika do aplikacji. Po wypisaniu pól login oraz hasło, a następnie po kliknięciu "Zaloguj" ma otworzyć się nowe okno "główne" (oczywiście po podaniu prawidłowych danych). Znalazłem parę przykładów w sieci i naskrobałem coś takiego:

Kopiuj
@FXML
    public void LoginButtonClicked(MouseEvent mouseEvent) {
        String email = emailTxt.getText();
        String password = passTxt.getText();

        User u = userService.isUserExist(email, password);

        if(u != null) {
            try {
                FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/mainPanel/mainPanel.fxml"));
                Parent root = loader.load();
                Stage stage = new Stage();
                stage.setScene(new Scene(root));
                stage.show();
            } catch (IOException e) {
                LOGGER.warning("Bład podczas tworzenia głównego okna!");
                e.printStackTrace();
            }
        } else {
            Alert alert = new Alert(Alert.AlertType.ERROR);
            alert.setTitle("Magazyn");
            alert.setHeaderText("Błędny login lub hasło!");
            alert.setContentText(null);
            alert.showAndWait();
        }
    }

Po kliknięciu "Zaloguj" dostaję całą litanię Errorów, w oczy rzuca się: "Caused by: java.lang.IllegalStateException: Location is not set.".
Kombinowałem na kilka sposobów, ze ścieżką pliku, z podmianą paczek, a nawet otworzyć jeszcze raz to samo okno, które przecież już działa - wszystko to wyrzuca ten sam error.

W załączniku dodaję również screen z hierarchią paczek, być może ktoś znajdzie ten haczyk...
title
Pozdrawiam!

dymul
  • Rejestracja:około 11 lat
  • Ostatnio:ponad rok
  • Postów:182
1

jak podajesz ścieżkę rozpoczynającą się od roota to musi być kompletna
FXMLLoader loader = new FXMLLoader(getClass().getResource("/sample/view/mainPanel/mainPanel.fxml"));

WY
Dziękuję, próbowałem w ten sposób tylko bez tego pierwszego '/'... Pozdrawiam

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.