Login JavaFX登录屏幕

Login JavaFX登录屏幕,login,javafx-2,Login,Javafx 2,我正在尝试制作一个带有登录屏幕的应用程序。我发现的所有例子都在谈论如何制作屏幕本身,而不是如何使其与更大的图片应用程序相适应 因此,我制作了登录屏幕,用于验证SQL数据库中的用户。登录屏幕工作得很好,但从那里我需要它来启动应用程序本身并跟踪登录的用户,我认为这应该很容易做到,因为数据库用一个唯一的密钥标识每个用户。这里的问题是,如何使用用户密钥作为参数启动我的应用程序,该参数将在它们可以从主应用程序打开的不同屏幕中保持不变 目前,我首先启动登录屏幕,一旦用户被验证,就会为主应用程序创建一个新的阶

我正在尝试制作一个带有登录屏幕的应用程序。我发现的所有例子都在谈论如何制作屏幕本身,而不是如何使其与更大的图片应用程序相适应

因此,我制作了登录屏幕,用于验证SQL数据库中的用户。登录屏幕工作得很好,但从那里我需要它来启动应用程序本身并跟踪登录的用户,我认为这应该很容易做到,因为数据库用一个唯一的密钥标识每个用户。这里的问题是,如何使用用户密钥作为参数启动我的应用程序,该参数将在它们可以从主应用程序打开的不同屏幕中保持不变

目前,我首先启动登录屏幕,一旦用户被验证,就会为主应用程序创建一个新的阶段。验证用户后,相关代码为:

/*
 * login is correct
 */                                
Node source;
source = (Node) t.getSource();
Stage thestage = (Stage) source.getScene().getWindow();
thestage.close();
Stage homestage = new Stage();
AnchorPane home = (AnchorPane) FXMLLoader.load(Punto_de_Venta.class.getResource("PuntoDeVenta.fxml"));
Scene homescene = new Scene(home);
homestage.setScene(homescene);
homestage.setTitle("LanzDom Punto de Venta");
homestage.show();
我原本想先打开主应用程序,不显示后台,然后嵌套在登录屏幕中。我的想法是,我可以在主屏幕中设置一个变量,在登录屏幕中用用户的密钥更新它,当用户被验证时会返回该密钥。但是,a我不知道首选方法是什么,或者是否有一种方法比我在这里介绍的两种方法更好,b我的做法是,如果用户关闭登录屏幕而不是单击“确定”按钮,则尽管用户未被验证,主应用程序阶段仍会出现


非常感谢您的帮助。

我有一个名为RootViewController的FXML,放在舞台上。在这里,我放置了loginFXML控件,然后将其与普通的应用程序窗口交换,尽管创建一个新的阶段可能更好。决定何时交换到应用程序

应用程序中的数据可以通过在控制器之间共享对象来传递,也可以自己实例化控制器:

MyController controller = new MyController(sharedObject);
FXMLLoader loader = new FXMLLoader();
loader.setController(controller);
loader.load(getClass().getResource("/control.fxml");

或者可以使用依赖项注入。请访问

查看完整来源,谢谢。这在很大程度上起了作用。然而,当我使用单独的.fxml将变量注入控制器时,如果我的变量在初始化之前很重要,出于某种原因它将无法工作。作为一种解决方法,在这种情况下,我会将控制器和GUI元素滚动到一个.java文件中,这样可以更好地控制每个元素。我假设必须有一种方法在GUI初始化之前建立变量,这样我的变量就可以用来激活/停用/隐藏不同的元素。有人能帮忙吗?在java中,构造函数总是在调用任何方法之前运行。只需在那里设置变量,然后在调用中使用它们进行初始化。