我有一个使用Spring DI框架的javafx应用程序。
我使用这个类SpringFXMLLoader<S,T>
来获取James Denver的this github存储库中的父节点和相关控制器。
我遇到的问题是将数据从一个控制器传递到另一个控制器,例如从一个控制器中的表中选择一个用户,并将所选用户传递给另一个控制器并显示用户特定信息。
这是我尝试过的,因为我传递的对象在UserDetailController
SpringFXMLLoader<Parent, UserDetailController> loader =
SpringFXMLLoader.create()
.applicationContext(applicationContext)
.location(getClass().getResource("/fxml/userDetail.fxml"))
.build();
Parent userDetailNode = loader.load();
UserDetailController userDetailController = loader.getController();
User user = tblUsers.getSelectionModel().getSelectedItem();
userDetailController.setUser(user);
rootController.getViewContentPane().setCenter(userDetailNode);
在这种情况下,如何将数据从一个控制器传递到另一个控制器,即Spring DI注入bean。
使用Spring DI时如何在javafx控制器周围传递数据?
任何人都需要额外的信息,我随时准备提供
答案 0 :(得分:0)
我自己找到了解决方案。我的方法的问题首先打败了使用依赖注入的逻辑,因为它引入了控制器之间的依赖关系。
使用Spring
发布和收听ApplicationEvents
。
User
对象的事件。UsersController
的Publisher
使用所选User
UserDetailController
注册为Listener
收听并从活动中获取所选User