1

i am trying to navigate to an other fxml file but when i try parent root = loader.load() he catches an exception and throws it back. He prints SYSTEEMFOUT bij laden Fietsenbeheer: but no message with it. laadLedenBeheer is the one that works fine and laadFietsenBeheer doens't.

Here is my main program:

    public void laadLedenbeheer() {
        try {
            String fxmlFile = "/fxml/LedenBeheer.fxml";
            FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlFile));

            // controller instellen
            LedenBeheerController controller = new LedenBeheerController(this,createLidservice());
            loader.setController(controller);

            Parent root = loader.load();

            controller.initialiseertabel();
            controller.setParent(this);

            Scene scene = new Scene(root);
            stage.setTitle("Leden beheren");
            stage.setScene(scene);

        } catch (IOException e) {
            System.out.println("SYSTEEMFOUT bij laden ledenbeheer: " + e.getMessage());
        }
    }
    public void laadFietsbeheer() {
        try {
            String fxmlFile = "/fxml/FietsenBeheer.fxml";
            FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlFile));

            // controller instellen
            FietsenBeheerController controller = new FietsenBeheerController(this, createFietsService());
            loader.setController(controller);

            Parent root = loader.load();
            
            controller.setParent(this);
            Scene scene = new Scene(root);
            stage.setTitle("Fietsen beheren");
            stage.setScene(scene);

        } catch (IOException e) {
            System.out.println("SYSTEEMFOUT bij laden Fietsenbeheer: " + e.getMessage());
        }
    }

Here is my fxml file that i am trying to load

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.control.cell.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="676.0" prefWidth="900.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
    <center>
        <GridPane BorderPane.alignment="CENTER">
            <columnConstraints>
                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
                <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
            </columnConstraints>
            <rowConstraints>
                <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
            </rowConstraints>
            <children>
                <BorderPane prefHeight="200.0" prefWidth="200.0">
                    <center>
                        <TableView fx:id="tvLeden" prefHeight="506.0" prefWidth="431.0" BorderPane.alignment="CENTER">
                            <columns>
                                <TableColumn fx:id="tcVoornaam" prefWidth="99.0" text="Voornaam">
                                    <cellValueFactory>
                                        <PropertyValueFactory property="voornaam" />
                                    </cellValueFactory>
                                </TableColumn>
                                <TableColumn fx:id="tcNaam" prefWidth="97.0" text="Naam">
                                    <cellValueFactory>
                                        <PropertyValueFactory property="naam" />
                                    </cellValueFactory>
                                </TableColumn>
                                <TableColumn fx:id="tcRijksreg" minWidth="0.0" prefWidth="184.0" text="Rijksregisternummer">
                                    <cellValueFactory>
                                        <PropertyValueFactory property="rijksregisternummer" />
                                    </cellValueFactory>
                                </TableColumn>
                            </columns>
                        </TableView>
                    </center>
                    <bottom>
                        <FlowPane alignment="CENTER" columnHalignment="CENTER" hgap="20.0" prefHeight="50.0" prefWidth="200.0" BorderPane.alignment="CENTER">
                            <children>
                                <Button fx:id="btnFietsbeheer" mnemonicParsing="false" onAction="#fietsen" text="Fietsbeheer" />
                                <Button fx:id="btnWijzigenLid" mnemonicParsing="false" onAction="#wijzigenLid" text="Wijzigen" />
                        <Button fx:id="btnStartdatum" mnemonicParsing="false" onAction="#wijzigenStartdatum" text="Startdatum wijzigen" />
                                <Button fx:id="btnUitschrijvenLid" mnemonicParsing="false" onAction="#uitschrijvenLid" text="Uitschrijven" />
                            </children>
                        </FlowPane>
                    </bottom>
                    <GridPane.margin>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                    </GridPane.margin>
                </BorderPane>
                <BorderPane prefHeight="200.0" prefWidth="200.0" GridPane.columnIndex="1">
                    <center>
                        <FlowPane orientation="VERTICAL" prefHeight="200.0" prefWidth="200.0" vgap="20.0">
                            <children>
                                <GridPane hgap="20.0" vgap="5.0">
                         
                                    <children>
                                        <TextField fx:id="tfVoornaam" promptText="Voornaam" GridPane.columnIndex="1" GridPane.rowIndex="1" />
                                        <TextField fx:id="tfNaam" promptText="Naam" GridPane.columnIndex="1" GridPane.rowIndex="2" />
                                        <TextField fx:id="tfRijksregisternummer" prefHeight="25.0" prefWidth="134.0" promptText="Rijksregisternummer" GridPane.columnIndex="1" />
                                        <TextField fx:id="tfEmail" promptText="Email" GridPane.columnIndex="1" GridPane.rowIndex="3" />
                                        <DatePicker fx:id="dpStartdatum" disable="true" editable="false" promptText="Startdatum" GridPane.columnIndex="1" GridPane.rowIndex="5" />
                                        <CheckBox fx:id="cbUitgeschreven" disable="true" mnemonicParsing="false" text="Uitgeschreven" GridPane.columnIndex="1" GridPane.rowIndex="6" GridPane.valignment="TOP" />
                                        <TextArea fx:id="taOpmerking" prefHeight="200.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="8" GridPane.rowSpan="2" />
                              <Label text="Rijksregisternummer" />
                              <Label text="Voornaam" GridPane.rowIndex="1" />
                              <Label text="Naam" GridPane.rowIndex="2" />
                              <Label text="E-mail" GridPane.rowIndex="3" />
                              <Label text="Startdatum" GridPane.rowIndex="5" />
                                        <Label text="Opmerking" GridPane.rowIndex="7" />
                                    </children>
                                    <columnConstraints>
                                        <ColumnConstraints maxWidth="131.0" minWidth="122.0" prefWidth="122.0" />
                              <ColumnConstraints />           
                                    </columnConstraints>
                                    <rowConstraints>
                              <RowConstraints minHeight="10.0" prefHeight="30.0" />
                              <RowConstraints minHeight="10.0" prefHeight="30.0" />
                                        <RowConstraints minHeight="10.0" prefHeight="30.0" />
                              <RowConstraints minHeight="10.0" prefHeight="30.0" />
                              <RowConstraints maxHeight="0.0" minHeight="0.0" prefHeight="0.0" />
                              <RowConstraints maxHeight="25.0" minHeight="25.0" prefHeight="25.0" />
                              <RowConstraints />
                              <RowConstraints />
                              <RowConstraints />
                              <RowConstraints />
                                    </rowConstraints>
                                    <padding>
                                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                                    </padding>
                          
                          
                                </GridPane>
                            </children>
                            <padding>
                                <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
                            </padding>
                        </FlowPane>
                    </center>
                    <bottom>
                        <FlowPane alignment="CENTER" columnHalignment="CENTER" hgap="20.0" prefHeight="50.0" prefWidth="200.0" BorderPane.alignment="CENTER">
                            <children>
                                <Button fx:id="btnAnnuleren" mnemonicParsing="false" onAction="#annuleren" text="Annuleren" />
                                <Button fx:id="btnOpslaan" mnemonicParsing="false" onAction="#opslaan" text="Ok" />
                            </children>
                        </FlowPane>
                    </bottom>
                    <GridPane.margin>
                        <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
                    </GridPane.margin>
                </BorderPane>
            </children>
        </GridPane>
    </center>
    <top>
        <FlowPane alignment="CENTER" columnHalignment="CENTER" orientation="VERTICAL" prefHeight="100.0" BorderPane.alignment="CENTER">
            <children>
                <Label text="Ledenbeheer">
                    <font>
                        <Font size="42.0" />
                    </font>
                </Label>
                <Label fx:id="laErrorLeden" textFill="RED" />
            </children>
        </FlowPane>
    </top>
</BorderPane>

anyone an idea how to solve this?

synicburst
  • 25
  • 4
  • An exception’s stack trace is *very* useful. It tells you exactly what went wrong and where. An exception’s message by itself usually is not useful, as you are seeing here. Replace the body of your catch block with `e.printStackTrace();` and run the program again. Then edit your question and place the entire stack trace (including any “Caused by” sections) in the question’s text. – VGR Aug 16 '21 at 00:09

0 Answers0