通过场景JavaFX将标签作为字符串传递给查询

时间:2019-03-28 10:22:39

标签: javafx parameter-passing

在我的第一个场景中,用户从表中选择一个团队,第二个场景是有关该团队的信息。 但是我的问题是将字符串(存储为标签)传递到下一个显示所选团队结果的场景。

debug

这是我在选择结果按钮后将团队名称(teamLabel)从场景2传递到场景3。

info

这是将标签值传递给字符串组并将其设置为字符串组的功能。

但是,如果我尝试在此函数之外打印team变量,则将其设置为null。我如何获取它来保存initData之外的值?

例如:

public void goResults(ActionEvent event) throws IOException{

    FXMLLoader loader = new FXMLLoader();
     loader.setLocation(getClass().getResource("TeamResults.fxml"));

     Parent tableViewParent = (Parent)loader.load();

     Scene tableViewScene = new Scene(tableViewParent);

   //access controller and call method
     TeamResultsController controller = loader.getController();
     controller.initData(teamLabel.getText());

我正在尝试将其传递给此查询(暂时不必担心已准备好的语句)。

您会推荐哪种方法?我知道这应该与其他示例线程相似,但我尚未将其与我的相关。对于我的经验不足,我深表歉意,但是某种框架将是不可思议的。

但是任何帮助都是伟大的, 谢谢。

1 个答案:

答案 0 :(得分:0)

您无法使用initialize处的值,因为initializeloader.load()处被调用,而这一次确实是null值。 您可以在调用controller.initData(teamLabel.getText());之后,在新函数中(然后调用该函数)甚至在initData内部进行查询。

另一个不建议的选项是将控制器作为对象传递给加载器(并在加载之前放置所有需要的值),但是如果这样做,将很难在fxml文件中定义控制器