java - 我可以将从另一个 Controller 获取的参数用于当前的可初始化参数吗?

标签 java javafx fxml scenebuilder

我有两个不同的 Controller ,但通过在其中一个 Controller 上获取特定值,我想在第二个 Controller 的可初始化中使用它。

这是第一个 Controller 将region参数发送到另一个 Controller 的部分

    public void enterlevel(String x) throws IOException{

    FXMLLoader Loader=new FXMLLoader();

    Loader.setLocation(getClass().getResource(x));

    Loader.load();

    regionalController reg=Loader.getController();
    reg.getRegion(region);


    //System.out.println(region);

    Parent root = Loader.getRoot();

    Stage primaryStage = new Stage();
    Scene scene = new Scene(root);

    primaryStage.setTitle("Ziga Ziga");
    primaryStage.setScene(scene);
    primaryStage.setMaximized(true);
    primaryStage.setResizable(false);
    primaryStage.show();


    Stage stage = (Stage) loginButton.getScene().getWindow();
    stage.close();

}

这是第二个 Controller 获取它的地方

    public void getRegion(String region) {
    System.out.println(region+" UO UO UO ");
    regi=region;
    }

这是可初始化的,我无法在启动时使用该值

public void initialize(URL arg0, ResourceBundle arg1) {     
    System.out.println(regi);
    try{
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/bimbima","root","");  
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("SELECT * FROM  `file` WHERE Region = '"+regi+"'");  
        while(rs.next())  {
        filename=rs.getString("filename");
        nameofSup=rs.getString("Name of Supervisor");
        System.out.println(filename);
        }
        con.close();  
        }catch(Exception e){ System.out.println(e);}  
}

最佳答案

旁白:当然,您的 getRegion(...) 方法应该被称为 setRegion(...),因为它会更改属性的值,并且不会'不返回任何内容。

只需更改第二个 Controller 中的代码,以便仅在知道区域时从数据库中检索值:

public void initialize(URL arg0, ResourceBundle arg1) {     
}

public void setRegion(String region) {
    regi=region;
    try{
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=DriverManager.getConnection("jdbc:mysql://localhost/bimbima","root","");  
        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("SELECT * FROM  `file` WHERE Region = '"+regi+"'");  
        while(rs.next())  {
        filename=rs.getString("filename");
        nameofSup=rs.getString("Name of Supervisor");
        System.out.println(filename);
        }
        con.close();  
    } catch(Exception e) { 
        e.printStackTrace();
    }  
}

关于java - 我可以将从另一个 Controller 获取的参数用于当前的可初始化参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44399256/

相关文章:

java - 将 fxml 场景保存为图像

JavaFX |用户名和密码检查无法正常工作

java - 无法获得正确的字体字符宽度

css - Fxml 中 HTML 的 <style> 标签

java - 我想我用错了 JDBC

java - 如何将动态 JVM 命令行标志传递给独立的 JavaFX 应用程序?

java - 为什么javaFX应用程序jar可以在jdk上运行但不能在jre上运行?

java - fxmlLoader.getController() 导致空指针异常?

java - 从 Android 中的 StartActivityForResult 返回一个类

java - TCP 连接比 ping 花费 X100 更长的时间