JavaFX NullPointerException при изменении состояния компонентов в другом контроллере? [Дубликат]

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

13
задан Toni_Entranced 4 May 2014 в 21:21
поделиться

1 ответ

Измените это

@FXML
   public void editPerson() {
      try {
         FXMLLoader loader = new FXMLLoader(getClass().getResource(
               "PersonEditor.fxml"));
         PersonEditorCtrl ctrl = loader.getController();
         ctrl.init(table.getSelectionModel().getSelectedItem());
         Parent root = (Parent) loader.load();
         Scene newScene = new Scene(root);
         Stage newStage = new Stage();
         newStage.setScene(newScene);
         newStage.show();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

К тому:

@FXML
   public void editPerson() {
      try {
         FXMLLoader loader = new FXMLLoader(getClass().getResource(
               "PersonEditor.fxml"));
         Parent root = (Parent) loader.load();
         PersonEditorCtrl ctrl = loader.getController();
         ctrl.init(table.getSelectionModel().getSelectedItem());

         Scene newScene = new Scene(root);
         Stage newStage = new Stage();
         newStage.setScene(newScene);
         newStage.show();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }

Сначала вам нужно запустить loader.load(), после чего вы можете получить контроллер.

Патрик

29
ответ дан Patrick 19 August 2018 в 12:25
поделиться
  • 1
    Спасибо. Я знал, что это была какая-то глупость. T_T – Toni_Entranced 4 May 2014 в 21:53
  • 2
    Нет проблем, я знаю, что это никогда не случится с вами в будущем :) – Patrick 4 May 2014 в 21:54
  • 3
    Наверняка. Кстати, можете ли вы указать мне в правильном направлении? В моем табличном представлении не отражены изменения, внесенные в список людей. Когда я редактирую их снова с помощью кнопки редактирования, изменения там. Просто TableView не отражает их. – Toni_Entranced 4 May 2014 в 21:57
  • 4
    На самом деле неважно, я думаю, что понял это. Наблюдаемый список вызывает проблемы для многих людей. : \ – Toni_Entranced 4 May 2014 в 22:04
  • 5
    Разница между двумя: diffchecker.com/ufkwe977 приветствуется – Luc 28 May 2014 в 19:39
Другие вопросы по тегам:

Похожие вопросы: