问题描述
我有两个场景 Login.fxml 和 MainView.fxml 以及两个不同的控制器 LoginController.java 和 MainViewControler.java
I have two scenes Login.fxml and MainView.fxml and two diferent controllers LoginController.java and MainViewControler.java
在 LoginController 中,我完成了整个过程来登录并获取 JSessionID 的值并将其存储在一个对象中,如下所示:
In LoginController I do the whole process to login and get the value of JSessionID and store it in a object, like below:
loginGateway = loginGateway(gateway);
现在在 MainViewController 中,我需要使用 this 对象 (loginGateway) 来获取 JSessionID 并向服务器发出其他请求.但是我怎样才能在另一个控制器类(MainViewController.java)中访问这个对象????
Now in MainViewController I need to use the this object (loginGateway) to getJSessionID and make other requests to the server. But how can I acess this object in another Controller Class (MainViewController.java) ????
推荐答案
设置一个 LoginManager
,它同时引用 LoginController
和 MainViewController
.
Setup a LoginManager
which has a reference to both the LoginController
and the MainViewController
.
loginManager
使用loginController
创建登录屏幕,并将对自身的引用传递给loginController
.- 登录通过后,
loginController
通知loginManager
登录sessionID
. loginManager
然后可以创建一个MainViewController
,将mainViewController
传递给sessionID
并将场景内容替换为主视图.
- The
loginManager
creates a login screen using theloginController
and passes a reference to itself to theloginController
. - When login has passed, the
loginController
notifies theloginManager
of the loginsessionID
. - The
loginManager
can then create aMainViewController
, passing themainViewController
thesessionID
and replacing the scene contents with the main view.
这是一个指向一些示例代码的链接,用于演示这种方法.
Here is a link to some sample code to demonstrate this approach.
这篇关于如何在 JavaFX 中使用来自另一个控制器的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!