Ben*_*enj 2 java arguments javafx
如何在应用程序javafx的start方法中传递参数?实际上,我通过以下行在另一个类中调用我的javafx应用程序:
mainController.getMainApp().launch(MainApp.class);
Run Code Online (Sandbox Code Playgroud)
在我的启动方法下面:
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
this.primaryStage.setTitle("CLS");
this.primaryStage.initStyle(StageStyle.UNDECORATED);
// here the page fxml to load
Run Code Online (Sandbox Code Playgroud)
问题是我不知道在启动方法中要加载的页面fxml之后是什么。在我的另一个班上知道的。所以我想在我的方法中传递参数,开始知道我将加载哪个fxml页面。
请帮忙。
谢谢。
的launch方法Application旨在接受varargs参数:
public static void launch(Class<? extends Application> appClass, String... args)
Run Code Online (Sandbox Code Playgroud)
因此,您可以传递如下参数:
launch(MainApp.class, "--FXMLFile=Sample.fxml", "UnnamedArgument");
Run Code Online (Sandbox Code Playgroud)
然后在init或start方法中,您可以使用getParameters()方法获取以下参数:
Parameters parameters = getParameters();
List<String> unnamed = parameters.getUnnamed();
Map<String, String> named = parameters.getNamed();
List<String> raw = parameters.getRaw();
Run Code Online (Sandbox Code Playgroud)
您可以使用已命名或未命名的参数(在示例中,第一个被命名,第二个未命名。该getNamed()方法在a中返回已命名参数Map,该getUnnamed()方法在a中返回未命名参数List,而getRaw()原始返回已命名和未命名参数list。
从getParameters()的javadoc中注意:
注意:不应从Application构造函数中调用此方法,因为它将返回null。我t可以在init()方法或之后的任何时间被调用。
| 归档时间: |
|
| 查看次数: |
1107 次 |
| 最近记录: |