微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaFX 两步注册表

如何解决JavaFX 两步注册表

我将使用 JavaFX 构建两步注册表。任何人都知道如何将第一个控制器输入传递给第二个。以及如何在操作事件上使用这些值来更新我的数据库

这是我如何将我的第一个场景连接到第二个场景。并将我的输入发送到第二个场景控制器。

public void btnNextPage(){

    try{
        Parent fxml = FXMLLoader.load(getClass().getResource("stdReg2.fxml"));
        FXMLLoader loader=new FXMLLoader(getClass().getResource("stdReg2"));
        //Parent root = (Parent) loader.load();

        StdReg2 stdreg2=loader.getController();
        stdreg2.getTexts(txtFirstName.getText(),txtStdid.getText(),txtLastName.getText(),txtBd.getEditor().getText(),txtUsrEmail.getText(),txtUsrPass.getText(),img);
        //Parent fxml = FXMLLoader.load(getClass().getResource("stdReg2.fxml"));
        contentArea.getChildren().removeAll();
        contentArea.getChildren().setAll(fxml);

        //StdReg2 stdreg2=fxml.getConroller();

    } catch (IOException ex){
        Logger.getLogger(Dashboard.class.getName()).log(Level.SEVERE,null,ex);
        System.out.println(ex);
    }

这里是我如何将第一个控制器输入到第二个控制器。

public void getTexts(String txtFirstName,String txtStdid,String txtLastName,String txtBd,String txtUsrEmail,String txtUsrPass,File img) throws FileNotFoundException {


    String firstname = txtFirstName;
    String lastname = txtLastName;
    String emid = txtStdid;
    String usrBD = txtBd;
    String usrEmail = txtUsrEmail;
    String usrPass = txtUsrPass;

}

我的问题是,如何在我的操作事件上使用此输入并将第一个控制器数据和第二个控制器数据添加到我的数据库中,因为我无法在第二个控制器的其他方法中使用这些属性

谢谢,祝你有美好的一天。 ?

解决方法

为了获得对控制器的引用,您需要创建一个具有正确路径的 FXMLLoader 实例,然后使用该实例加载 FXML:

public void btnNextPage(){

    try{
        //Parent fxml = FXMLLoader.load(getClass().getResource("stdReg2.fxml"));
        //FXMLLoader loader=new FXMLLoader(getClass().getResource("stdReg2"));
        //Parent root = (Parent) loader.load();

        FXMLLoader loader = new FXMLLoader(getClass().getResource("stdReg2.fxml"));
        Parent fxml = loader.load();

        StdReg2 stdreg2 = loader.getController();
        stdreg2.getTexts(txtFirstName.getText(),txtStdid.getText(),txtLastName.getText(),txtBd.getEditor().getText(),txtUsrEmail.getText(),txtUsrPass.getText(),img);
        
        contentArea.getChildren().removeAll();
        contentArea.getChildren().setAll(fxml);


    } catch (IOException ex){
        Logger.getLogger(Dashboard.class.getName()).log(Level.SEVERE,null,ex);
        System.out.println(ex);
    }
}

不清楚您调用的各种方法实际上做了什么,但这设置了从另一个控制器调用一个控制器中的方法的正确方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。