作者:chenliuyan13 | 来源:互联网 | 2023-06-17 12:39
我的项目中有多个控制器,但现在我只指定3个( MainController , CarController , ClientController )。我要做的是保存退出程序时更改的所有数据,因此基本上我想使用stop()
方法访问我的 CarController&ClientController saveMethods
。我不知道我是否需要 MainController ;引用了以前的控制器。代码示例:
主要:
import Controller.CarController;
import Controller.ClientController;
import Controller.MainController;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
public FXMLLoader mainLoader;
public MainController mainController;
@Override
public void start(Stage primaryStage) throws Exception{
this.mainLoader = new FXMLLoader(getclass().getResource("/View/Main.fxml"));
Parent root = mainLoader.load();
this.mainCOntroller= this.mainLoader.getcontroller();
primaryStage.setTitle("Reservation system");
primaryStage.setScene(new Scene(root,1000,600));
primaryStage.show();
}
@Override public void stop(){
this.mainController.save(); //Should have reference to CarController & ClientController
}
public static void main(String[] args) {
launch(args);
}
}
MainController :
package Controller;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import java.net.URL;
import java.util.ResourceBundle;
public class MainController implements Initializable {
@FXML
public CarController carController;
@FXML
public ClientController clientController;
@Override
public void initialize(URL url,ResourceBundle resourceBundle) {
}
public void setCarController(CarController carController) {
this.carCOntroller= carController;
}
public void setClientController(ClientController clientController) {
this.clientCOntroller= clientController;
}
public void save(){
this.clientController.saveclientsToFile();
this.carController.saveToFile();
}
}
我现在不知道我尝试访问的方法是否重要。如果您坚持要稍后再添加。我有多个FXML文件,所有控制器分别工作。希望您能理解我的问题,如果没有,我会在有人回应的情况下尽力解释。
问题:如何从MainController访问CarController和ClientController?