相关疑难解决方法(0)

传递参数JavaFX FXML

如何将参数传递给javafx中的辅助窗口?有没有办法与相应的控制器通信?

例如:用户从a中选择一个客户,TableView并打开一个新窗口,显示客户的信息.

Stage newStage = new Stage();
try 
{
    AnchorPane page = (AnchorPane) FXMLLoader.load(HectorGestion.class.getResource(fxmlResource));
    Scene scene = new Scene(page);
    newStage.setScene(scene);
    newStage.setTitle(windowTitle);
    newStage.setResizable(isResizable);
    if(showRightAway) 
    {
        newStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

newStage将是新窗口.问题是,我找不到告诉控制器在哪里查找客户信息的方法(通过传递id作为参数).

有任何想法吗?

parameters dependency-injection javafx parameter-passing fxml

180
推荐指数
4
解决办法
16万
查看次数

JavaFX fxml - 如何将Spring DI与嵌套自定义控件一起使用?

我已经完成了一些关于将Spring DI与Jav​​aFx集成的教程,但我已经碰到了一个简单的例子没有涉及的墙(我无法弄清楚).

我想要在视图层和表示层之间进行清晰的分离.我想使用fxml定义可组合视图,使用Spring将它们连接在一起.这是一个具体的例子:

Dashboard.fxml:

<GridPane fx:id="view"
          fx:controller="com.scrub.presenters.DashboardPresenter"
          xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml">
   <children>
      <TransactionHistoryPresenter fx:id="transactionHistory"  />
   </children>
</GridPane>
Run Code Online (Sandbox Code Playgroud)

Main.java:

public void start(Stage primaryStage) throws Exception{
    try {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppFactory.class);
        SpringFxmlLoader loader = context.getBean(SpringFxmlLoader.class);
        primaryStage.setScene(new Scene((Parent)loader.load("/views/dashboard.fxml")));
        primaryStage.setTitle("Hello World");
        primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

SpringFxmlLoader.java:

public class SpringFxmlLoader {

    @Autowired
    ApplicationContext context;

    public Object load(String url) {
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource(url));
            loader.setControllerFactory(new Callback<Class<?>, Object>() {
                @Override
                public Object call(Class<?> aClass) {
                    return context.getBean(aClass);
                }
            });
            return …
Run Code Online (Sandbox Code Playgroud)

java spring dependency-injection javafx

3
推荐指数
1
解决办法
4271
查看次数