考虑以下样本.
如何访问控制器中应用程序的参数/参数?
谢谢.
注意:我曾尝试将App.java和MyController.java混合在一个Class文件中,但没有帮助.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
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 ?
}
}
Run Code Online (Sandbox Code Playgroud)
MyView.fxml(简化):
<AnchorPane fx:id="root" fx:controller="mainpackage.MyController">
<children>
<Button fx:id="myButton" onAction="#my_Action" text="Start" />
</children>
</AnchorPane>
Run Code Online (Sandbox Code Playgroud)
Ser*_*nev 15
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();
}
}
Run Code Online (Sandbox Code Playgroud)
并在控制器中读取它们:
public class MyController implements Initializable {
@Override
public void initialize(URL url, ResourceBundle rb) {
System.out.println(App.parameters);
}
Run Code Online (Sandbox Code Playgroud)
2.下一个主题中描述了更复杂(但总体上更好)的方法:
| 归档时间: |
|
| 查看次数: |
19506 次 |
| 最近记录: |