Я получил сцену first.fxml с firstController, это BorderPane с одной кнопкой (birthCert) в левой части.
Когда я нажимаю кнопку (birthCert), я успешно загружаю second.fxml в центр BorderPane.
@FXML
void birthCert(ActionEvent event) {
Parent root;
try {
root = load(getClass().getResource("second.fxml"));
id_borderPane.setCenter(root);
} catch (IOException e) {
e.printStackTrace();
}
}
second.fxml связан с классом secondController и имеет 1 кнопку (sendRequest). Когда эта кнопка нажата, я создаю экземпляр firstController и хочу, чтобы метод метода setscene загружал третий.fxml в центр borderPane.
third.fxml показывает только сообщение «Ваш запрос отправлен».
Проблема в том, что когда я вызываю метод setscene в классе secondController с экземпляром firstController
c.setscene();
public void setscene() {
Parent root;
try {
root = load(getClass().getResource("third.fxml"));
id_borderPane.setCenter(root);
} catch (IOException e) {
e.printStackTrace();
}
}
он не загружает third.fxml в центр BorderPane, ничего не происходит, только second.fxml остается загруженным.
Я пробовал контрольную печать и проверил, имеет ли root значение null, но печать работает нормально, а root не равен null, поэтому я действительно не понимаю, что может привести к тому, что в центре BorderPane не отображается Third.fxml
Вот весь код:
package controllers;
import static javafx.fxml.FXMLLoader.load;
import java.io.IOException;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.Parent;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
public class firstController {
@FXML
private BorderPane id_borderPane;
@FXML
void birthCert(ActionEvent event) {
Parent root;
try {
root = load(getClass().getResource("second.fxml"));
id_borderPane.setCenter(root);
} catch (IOException e) {
e.printStackTrace();
}
}
public void setscene() {
Parent root;
try {
root = load(getClass().getResource("third.fxml"));
id_borderPane.setCenter(root);
} catch (IOException e) {
e.printStackTrace();
}
}
}
package controllers;
import java.io.IOException;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.control.TextArea;
import javafx.scene.input.MouseEvent;
public class secondController{
@FXML
void SendRequset(MouseEvent event) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("first.fxml"));
loader.load();
UserGUISendReqController c = loader.getController(); // instance of firstController
c.setscene();
}
}
Большое спасибо за помощь :)