我正在使用javafx和FXML结合使用。 我想应用MVC模式。为此,我希望我的Model.java类成为模型,它启动View.fxml,该视图的控制器将是viewController.java。
我需要在某些时候让Model.java和Controller.java进行通信。所以让我们说ViewController.java看起来像这样:
public class ViewController implements Initializable {
private String parameter = "hello";
@FXML
private Label label;
@FXML
private Accordion acccord;
public String getParemeter() {
return this.parameter;
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
ViewController有一个私有字符串和它自己的方法。
和Model.java:
public class Model extends Application {
@Override
public void start(Stage stage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("View.fxml") );
Parent root = loader.load(); // Here the View is loaded and the Contoller is created along.
loader.getController(); // ?
//Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
如何访问ViewContoller参数/方法(例如getPamareter())? 我试图用loader.getController()获取控制器,但它返回一个泛型类型,我应该怎么做,只要它与它有关?我去了oracle文档,但我不太清楚,getController()是否返回了我的ViewController.java实例?
我可以从ViewController访问Model吗? 例如,触发了一个按钮,vieController将更新Model.java中的值。