Controller.java文件中的Javafx 2.0操作方法Application.getParameters() [英] Javafx 2.0 How-to Application.getParameters() in a Controller.java file

查看:200
本文介绍了Controller.java文件中的Javafx 2.0操作方法Application.getParameters()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑以下示例。

如何访问控制器中应用程序的参数/参数?

How to access to arguments/parameters of the application in the 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。最直截了当方式 - 将它们保存在应用程序中:

1. Most straightforward way -- save them in app:

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();
  }

}

并在控制器中读取它们: / p>

and read them in controller:

public class MyController implements Initializable {

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

2。更复杂(但总的来说更好) )方法在下一个主题中描述:

2. More complex (but better in general) approaches are described in next topics:

  • Passing Parameters JavaFX FXML
  • Multiple FXML with Controllers, share object

这篇关于Controller.java文件中的Javafx 2.0操作方法Application.getParameters()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆