我正在使用结合 FXML 的 javafx。我想应用 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 访问模型?例如一个按钮被触发,vieController 将更新 Model.java 中的一个值。