title: Mainapp does not start
body: <p>I need to debug my main app and I can't find the error. The app doesn't start the <code>PersonOverviewController</code>. Where do I need to fix this issue, in the fmxl=</p>
  
  <p>Messages in the Control</p>
  
  <pre><code>javafx.fxml.LoadException: 
  /Users/stefanhegetschweiler/Documents/Weiterbildung/FH/Programmierung/Projekt/17.08.2014/VokabularTrainer/bin/ch/makery/address/view/PersonOverview.fxml
  
  at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)
  at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2587)
  at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
  at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
  at ch.makery.address.MainApp.showPersonOverview(MainApp.java:162)
  at ch.makery.address.MainApp.start(MainApp.java:120)
  at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837)
  at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
  at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
  at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
  at java.security.AccessController.doPrivileged(Native Method)
  at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
  at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
  Caused by: java.lang.reflect.InvocationTargetException
  </code></pre>
  
  <p><code>PersonOverviewController</code>:</p>
  
  <pre><code>package ch.makery.address.view;
  
  import javafx.fxml.FXML;
  import javafx.scene.control.Label;
  import javafx.scene.control.TableColumn;
  import javafx.scene.control.TableView;
  
  import org.controlsfx.dialog.Dialogs;
  
  import ch.makery.address.MainApp;
  import ch.makery.address.model.Person;
  
  public class PersonOverviewController {
      @FXML
      private TableView&lt;Person&gt; personTable;
      @FXML
      private TableColumn&lt;Person, String&gt; firstNameColumn;
      @FXML
      private TableColumn&lt;Person, String&gt; lastNameColumn;
  
      @FXML
      private Label firstNameLabel;
      @FXML
      private Label lastNameLabel;
      @FXML
  
  
      // Reference to the main application.
      private MainApp mainApp;
  
      /**
       * The constructor.
       * The constructor is called before the initialize() method.
       */
      public PersonOverviewController() {
      }
  
      /**
       * Initializes the controller class. This method is automatically called
       * after the fxml file has been loaded.
       */
      @FXML
      private void initialize() {
          // Initialize the person table with the two columns.
          firstNameColumn.setCellValueFactory(
                  cellData -&gt; cellData.getValue().firstNameProperty());
          lastNameColumn.setCellValueFactory(
                  cellData -&gt; cellData.getValue().lastNameProperty());
  
          // Clear person details.
          showPersonDetails(null);
  
          // Listen for selection changes and show the person details when changed.
          personTable.getSelectionModel().selectedItemProperty().addListener(
                  (observable, oldValue, newValue) -&gt; showPersonDetails(newValue));
      }
  
      /**
       * Is called by the main application to give a reference back to itself.
       * 
       * @param mainApp
       */
      public void setMainApp(MainApp mainApp) {
          this.mainApp = mainApp;
  
          // Add observable list data to the table
          personTable.setItems(mainApp.getPersonData());
      }
  
      /**
       * Fills all text fields to show details about the person.
       * If the specified person is null, all text fields are cleared.
       * 
       * @param person the person or null
       */
      private void showPersonDetails(Person person) {
          if (person != null) {
              // Fill the labels with info from the person object.
              firstNameLabel.setText(person.getFirstName());
              lastNameLabel.setText(person.getSecondEnglish());
  
          } else {
              // Person is null, remove all the text.
              firstNameLabel.setText("");
              lastNameLabel.setText("");
  
          }
      }
  
      /**
       * Called when the user clicks on the delete button.
       */
      @FXML
      private void handleDeletePerson() {
          int selectedIndex = personTable.getSelectionModel().getSelectedIndex();
          if (selectedIndex &gt;= 0) {
              personTable.getItems().remove(selectedIndex);
          } else {
              // Nothing selected.
              Dialogs.create()
                  .title("No Selection")
                  .masthead("No word selected")
                  .message("Please select a word in the table.")
                  .showWarning();
          }
      }
  
      /**
       * Called when the user clicks the new button. Opens a dialog to edit
       * details for a new person.
       */
      @FXML
      private void handleNewPerson() {
          Person tempPerson = new Person();
          boolean okClicked = mainApp.showPersonEditDialog(tempPerson);
          if (okClicked) {
              mainApp.getPersonData().add(tempPerson);
          }
      }
  
      /**
       * Called when the user clicks the edit button. Opens a dialog to edit
       * details for the selected person.
       */
      @FXML
      private void handleEditPerson() {
          Person selectedPerson = personTable.getSelectionModel().getSelectedItem();
          if (selectedPerson != null) {
              boolean okClicked = mainApp.showPersonEditDialog(selectedPerson);
              if (okClicked) {
                  showPersonDetails(selectedPerson);
              }
  
          } else {
              // Nothing selected.
              Dialogs.create()
                  .title("No Selection")
                  .masthead("No word selected")
                  .message("Please select a word in the table.")
                  .showWarning();
          }
      }
  
      /**
       * Called when the user clicks the show Answer button. Opens a dialog to edit
       * details for the selected person.
       */
      @FXML
      private void handleAnswer() {
          Person selectedPerson = personTable.getSelectionModel().getSelectedItem();
          if (selectedPerson != null) {
              boolean okClicked = mainApp.showAnswerDialog(selectedPerson);
              if (okClicked) {
                  showPersonDetails(selectedPerson);
              }
  
          } else {
              // Nothing selected.
              Dialogs.create()
                  .title("No Selection")
                  .masthead("No word selected")
                  .message("Please select a word in the table.")
                  .showWarning();
          }
      }
          /**
           * Called when the user clicks on the train english button.
           */
          @FXML
          private void handleTrainEnglish() {
              Person selectedPerson = personTable.getSelectionModel().getSelectedItem();
              if (selectedPerson != null) {
                  boolean okClicked = mainApp.showEnglishTrainDialog(selectedPerson);
                  if (okClicked) {
                      showPersonDetails(selectedPerson);
                  }
  
              } else {
                  // Nothing selected.
                  Dialogs.create()
                      .title("No Selection")
                      .masthead("No word selected")
                      .message("Please select a word in the table.")
                      .showWarning();
              }
          }
          }   
  </code></pre>