我是新来的JavaFX和我在努力创造鉴于我目前的设置适当的MVC架构。 我点击在一起使用场景生成器的用户界面和指定的控制器类。
启动:
public class Portal extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("PortalUI.fxml"));
stage.setTitle("Portal");
stage.setScene(new Scene(root));
stage.show();
}
}
和控制器类包含代码的其余部分。
public class AccommodationPortalView implements Initializable {
@Override
public void initialize(URL url, ResourceBundle resources) {
// Work here.
}
}
我的教授问我进一步分离这个应用程序的问题和责任。 该控制器不仅管理状态,并与后台聊天,而且还更新视图。
我的第一反应是,让控制器类成为了查看和创建两个其他类控制器和模型。
然而,我在如何将这些碎片连接的损失。 我从来不需要实例化视图,所以我可以通过我的控制器,例如没有查看实例。 接下来,我试图把他们都单身,只是让控制器在运行时获取它们,但是这给了我一个错误。
public class Portal extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("PortalUI.fxml"));
stage.setTitle("Portal");
stage.setScene(new Scene(root));
stage.show();
// Controller gets a View and Model instance in initialize();
// Error: Instantiation and Runtime Exception...
PortalController.INSTANCE.initialize();
}
}
如何正确建立使用我的当前配置的MVC模式? 需要不同的架构?