Фрагменты кода:
Вот упрощенная версия соответствующего кода:
Код: Выделить всё
public class MainController {
@FXML
private StackPane mainPane;
@FXML
private ComboBox accessComboBox;
public void initComponents(Stage stage, Employee employee) {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/Main.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("MotorPH Payroll Management System");
stage.show();
MainController controller = loader.getController();
controller.setEmployee(employee);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@FXML
private void initialize() {
// This line causes the buttons to throw NullPointerException
accessComboBox.setItems(FXCollections.observableArrayList("Employee", "Admin"));
}
private void loadScene(String fxmlPath) {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource(fxmlPath));
Parent root = loader.load();
mainPane.getChildren().clear();
mainPane.getChildren().setAll(root);
} catch (IOException e) {
e.printStackTrace();
}
}
@FXML
public void loadHomeScene() {
loadScene("/view/employee/HomeScene.fxml");
}
@FXML
public void loadProfileScene() {
loadScene("/view/employee/ProfileScene.fxml");
}
// Other scene loading methods...
}
Код: Выделить всё
Код: Выделить всё
Caused by: java.lang.NullPointerException: Cannot invoke "javafx.scene.control.ComboBox.setItems(javafx.collections.ObservableList)" because "this.accessComboBox" is null
at com.motorph.controller.MainController.initialize(MainController.java:33)
Что может быть причиной того, что accessComboBox становится нулевым, когда я пытаюсь его заполнить в методе инициализации, тем более что я использую метод initComponents для загрузки файла FXML? Будем очень признательны за любые советы и идеи!
Что я пробовал:
[*]Проверено, что методы onAction в FXML правильно связаны с методами в MainController.
[*] Убедитесь, что пути FXML в методе loadScene верны и что соответствующие файлы FXML существуют.
[*]Очистка основной панели
[*]Очистка основной панели
[*]Очистка основной панели code> перед загрузкой нового контента.
[*]Добавлено ведение журнала для отслеживания нажатия кнопок и загрузки сцен.
[*]Проверено наличие нулевых указателей, особенно для mainPane, что может указывать на то, что он был введен неправильно.
Подробнее здесь: https://stackoverflow.com/questions/790 ... -populated
Мобильная версия