Нулевые проблемы в методе инициализации приложений JavaFXJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Нулевые проблемы в методе инициализации приложений JavaFX

Сообщение Anonymous »

Я работаю над приложением JavaFX, в которое загружаю сведения о курсе с предыдущего экрана (CourseDetailController) и отображаю их в CourseScreenController. Предполагается, что метод инициализации настраивает пользовательский интерфейс на основе выбранного курса, включая загрузку данных JSON и динамическое заполнение пользовательского интерфейса разделами и уроками.
Проблема в том, что в методе инициализации поле selectedCourse имеет значение null или пусто, хотя метод setCourseDetails устанавливает его значение до загрузки сцены.
Вот фрагмент кода из моего кода CourseScreenController:

Код: Выделить всё

public class CourseScreenController implements Basics {
private String selectedCourse;
private String courseName;

// Setter method called when switching to this screen
public void setCourseDetails(String imageUrl, String courseName, String instructor, String duration, String description, String language) {
this.courseName = courseName;
selectedJSON(courseName);  // Determine the course JSON path
}

public void selectedJSON(String courseName) {
if (courseName.equals("Java Programming")) {
selectedCourse = "src/main/data/courses_data/java.json";
} else if (courseName.equals("Python Programming")) {
selectedCourse = "src/main/data/courses_data/python.json";
} else if (courseName.equals("C++ Programming")) {
selectedCourse = "src/main/data/courses_data/cpp.json";
} else if (courseName.equals("WEB Programming")) {
selectedCourse = "src/main/data/courses_data/web.json";
} else {
System.out.println("Course not found!");
selectedCourse = null;
}
}

@FXML
public void initialize() {
System.out.println("Selected course: " + selectedCourse);
if (selectedCourse == null || selectedCourse.isEmpty()) {
System.err.println("Course path is not set. Defaulting to Python course.");
selectedCourse = "src/main/data/courses_data/python.json";
}

// Further logic to load sections and populate UI
}
}

Несмотря на вызов setCourseDetails перед методом инициализации, selectedCourse по-прежнему имеет значение null при инициализации. Я подозреваю, что это связано с тем, что метод инициализации выполняется до setCourseDetails.
Отлажено и проверено, что setCourseDetails вызывается и правильно устанавливает значение.
Проверил порядок выполнения и понял, что инициализация запускается первой.
1- Как я могу убедиться, что выбранный курс установлен правильно перед инициализацией логики?
2- Есть ли лучший способ передачи данных между контроллерами в JavaFX, чтобы избежать такие проблемы?
Поскольку я новичок в Java, буду очень признателен за любые объяснения или ресурсы для лучшего понимания этого.

Подробнее здесь: https://stackoverflow.com/questions/793 ... plications
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»