gpt4 book ai didi

Javafx 2.0 操作方法 Controller.java 文件中的 Application.getParameters()

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:37:34 27 4
gpt4 key购买 nike

考虑以下示例。

如何在 Controller 中访问应用程序的参数/参数?

谢谢。


注意:我曾尝试将 App.java 和 MyController.java 混合在一个类文件中,但没有帮助。


App.java(简化):

public class App extends Application {

public static void main(String[] args) {
Application.launch(App.class, args);
}

@Override
public void start(Stage primaryStage) throws Exception {

// output arguments in console
System.out.println(getParameters().getNamed().toString());

Parent root = FXMLLoader.load(getClass().getResource("MyView.fxml"));
final Scene scene = new javafx.scene.Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}

}

MyController.java(简化版):

public class MyController implements Initializable {

@Override
public void initialize(URL url, ResourceBundle rb) {
// HOW TO getParameters() HERE ?
}

@FXML
private Button myButton;

@FXML
private void my_Action(ActionEvent event) {
// HOW TO getParameters() HERE ?
}

}

MyView.fxml(简化):

<AnchorPane fx:id="root" fx:controller="mainpackage.MyController">
<children>
<Button fx:id="myButton" onAction="#my_Action" text="Start" />
</children>
</AnchorPane>

最佳答案

1.最直接的方法是将它们保存在应用程序中:

public class App extends Application {

public static void main(String[] args) { launch(); }

public static String parameters;

@Override
public void start(Stage primaryStage) throws Exception {

parameters = getParameters().getNamed().toString();

Parent root = FXMLLoader.load(getClass().getResource("MyView.fxml"));
final Scene scene = new javafx.scene.Scene(root);
primaryStage.setScene(scene);
primaryStage.show();
}

}

并在 Controller 中读取它们:

public class MyController implements Initializable {

@Override
public void initialize(URL url, ResourceBundle rb) {
System.out.println(App.parameters);
}

2. 下一个答案中描述了稍微复杂一点(通常更好)的方法:

关于Javafx 2.0 操作方法 Controller.java 文件中的 Application.getParameters(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com