Java 通过传递变量动态打开FXML接口 简介:
嗨,我在FXML上遇到了麻烦,快把我逼疯了 背景故事: 我已经用Java构建了一个树数据结构,这棵树代表我的GUI(人机界面)的“状态”。 对于这个树的每个节点,我希望有一个相应的FXML文件,其名称存储在树节点中。 我希望打开根节点(树中的特殊节点),并根据当前树的状态将多个松散的FXML文件嵌入其中 问题:Java 通过传递变量动态打开FXML接口 简介:,java,javafx,fxml,openjfx,Java,Javafx,Fxml,Openjfx,嗨,我在FXML上遇到了麻烦,快把我逼疯了 背景故事: 我已经用Java构建了一个树数据结构,这棵树代表我的GUI(人机界面)的“状态”。 对于这个树的每个节点,我希望有一个相应的FXML文件,其名称存储在树节点中。 我希望打开根节点(树中的特殊节点),并根据当前树的状态将多个松散的FXML文件嵌入其中 问题: 我不知道如何将变量从应用程序传递到FXML 我不知道如何用fx:include实例化一个FXML,用链接发送一些字符串参数(到其他FXML),并创建一个灵活的应用程序 我试过的 在谷
- 我不知道如何将变量从应用程序传递到FXML
- 我不知道如何用
实例化一个FXML,用链接发送一些字符串参数(到其他FXML),并创建一个灵活的应用程序fx:include
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
FXML loader = new FXMLLoader(getClass().getResource("sample.fxml"));
Map<String, Object> namespace = loader.getNamespace();
namespace.put("a", "sample2.fxml");
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(loader.load(), 300, 275);
primaryStage.show();
}
public static void main(String[] args){launch(args);}
}
public类主扩展应用程序{
@凌驾
public void start(Stage primaryStage)引发异常{
FXML loader=newFXMLloader(getClass().getResource(“sample.FXML”);
Map namespace=loader.getNamespace();
put(“a”,“sample2.fxml”);
setTitle(“你好世界”);
setScene(新场景(loader.load(),300275);
primaryStage.show();
}
公共静态void main(字符串[]args){launch(args);}
}
包含以下内容的FXML文件:
给定的示例会发生什么
FXML无法编译,因为它不知道“$a”我假设您错过了FXMLIt中的花括号:${a}在我尝试这种方法时起了作用:但是当我尝试在fx:include source=“$”上使用它时,“$”和“${}”都不起作用